<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:country="http://xbrl.sec.gov/country/2021"
  xmlns:dei="http://xbrl.sec.gov/dei/2021q4"
  xmlns:gntx="http://www.gentex.com/20211231"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2021-01-31"
  xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="gntx-20211231.xsd" xlink:type="simple"/>
    <context id="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i0a4407e01e964008a89c551e26193144_I20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
        </entity>
        <period>
            <instant>2021-06-30</instant>
        </period>
    </context>
    <context id="i79c3d98384ce41328a4989a3c5c25692_I20220201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
        </entity>
        <period>
            <instant>2022-02-01</instant>
        </period>
    </context>
    <context id="i5802885ac61a43489c745def8892cd9f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i6812fd7fc28348e7a957fdc33896f477_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ica4861ffd71347418544b4a01be91ff1_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="if04a375449ce4542a3f3393188b5c6fe_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="iaef136f19ccd40018357cd5c7972faab_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="iddc6889d260d43e289b9c2c8f6cd6d65_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="if97a82a25bb34a0bbf5a3ffc89bcdb23_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="iab22950b1bb540d4ae8561033b8a3cbd_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ic7d0458e08694ea595f78d786d8d22d7_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="if1c91c3b32cb48b992814f07110da1c9_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i76f3f8eaf3ec42468f7cc72204136724_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="id69f5eec90444b46acbe2848ebf8b133_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="iee953fe6b1664a0a873c5a25250bbd46_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="iebb5220090b146b6a5dfb9f10551031b_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="iac6ebb2edba4414499fd70a3f6535d14_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i58dd0aec540949b08f1ec4b51445e1ed_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i6e41d2e0a204469f9667e0bdf4663ec0_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i139357143e0f4eacbbbf3a149336c9b1_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i67be90339b7e4640a111b763b7f2d6a5_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i2bf016d15a94481a9017623065f4c619_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if54d8f88383a4c9f91950598212430e2_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="iba105602652f48c586a9803244172672_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia0329f8789dc40d787c9deeb24cbd788_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i089b50a3e3c74b6db4c30889ca03c153_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i1e2eaf27e9a647a381db2b60fb1e8940_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i54eb025adcc248ca9240855e85cd38c4_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7d2a45c2f1eb44178713b2c25b181c10_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iaae53e96b1c24a8982e227c9cce48d04_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i79fc8826275f4908a11e49608743082c_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ia5ff4055b0044df784477580e93c6408_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="id196865609f24bdca1102b85738d38cc_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i402cb423a7354fcfb8c2dadfb7980d46_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i8d8e1da6f5ca41e28b82b19d037fdbdc_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="if2cf33740b7645fc8fe9caf0abd05709_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i562b4304926c4cceb0e7fdd00288b9a6_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i2664f681e8a34507b50d1ef016d2b22b_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i58b6f6d4aecd4f22b338b6e5bc3558aa_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ic6ad84e49b7343f0972d1138bcfcc159_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i30428947748a4d7bb58b42beb98bc4ed_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i18ace7cebdb3455c8641886adb72a261_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i1fc20d413a8e4200ae6ceb53ccd3c32f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i67aee0b257264715bab94a6d76be9cf1_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i7670dfe188d242f0837393b05bbf3c74_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if435b94a6cb6419fbeddeb0a79e8a0e3_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i5d0175a0a2ec4701a01e845159b10276_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i06c4126238144effb4a2efe9d72ced99_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ic45c006ac0d4430d995bfe9c045140ca_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ifc0334febbb54585abbf2a941926204c_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ic9648ea877db41b3ab71efba6e988409_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i1c30add963c6482b836e28f8fc0b89c2_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="id8c5f2159ecb4d4297d7ef9cd45a74e0_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:OtherDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ie4cb0268c81945d1abe7caea1ab9031d_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:OtherDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i043b16435e6a4449bea62328bacfd106_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:OtherDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i6643108a2fca45f79f4fd328f8c5e3c0_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:OtherDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i2e09ca2e7bb945d28352e41bb1096b25_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ibf1609681dd843a8a5062ad07a989221_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i4cfe34c8ec1e4aca976d850ba9272855_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i642f30ed95d94b92bd484aa93d941569_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i83d644759352410a8d8fe814c7e6f174_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i81aed82560c64a00bf73768f2b06c6e2_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ib77fc239a9954eb98c89f3d6d97312e0_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i87851860cd77424e86bb07ffad83bc48_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if249bf5daf2649e5bbca39e9e673a646_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i91e252f5d79443c1bfbdac79efde3a37_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i6aa6292b7eac4d65a0fdb1f78ceef6a3_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i84f70bb1584343eca703a5f013df0fe8_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i69bb7cbd9bf24b51a0040c758ae40aaf_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ie71f9abdfb12430ea3a475409e0f8e7b_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="id6dd6ade8afd49dab9e3ec3eb510c2e2_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ia7d171f3bb01493383a3156980df5569_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ia3062321c0004977a498867f6f1903c2_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i88fcbf0d2efb424da7b0fb8d709e7d11_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i76040d3704714ac99d9cb80fe94bda28_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i6d8e26cafd1842ae934ccd6c3545c9b1_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ib048d2997e694992b1e8afb581be2a54_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i98a42d8960b847b7b8a1a41939b9ed57_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ic4d9d27cbfdd435faa885a96de3394ef_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i1bbb482cae6741259292340eda12cf76_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i13f05e86b01b4de1b912394306c71c29_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ie2739925489c467b9bcd502c7b5f0b6f_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ib96b91a18df246c290bac145986ffea4_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="icb122e3619ab40b9a8c6de279cfb5f43_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ie61ed359d5214e519689b2cd92057150_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i31ab3e6452fe4f25bad719d4c728d8a5_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i2d7b4279729a41898d28bd524b96f352_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ib10b217c871547ac8a18c365d90f83c0_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i060334269adf4ec982624dfd2355a765_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i648dfb99995f4bf5bab276cdaca9b4f3_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="if187acd990604fa79c426195e96e6005_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i3c92cf5eb8624faf8e91ea0427464b83_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia759231c35b24a3d94a3121e48f91460_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia4da7f9e2a95462e929cb7b4e618728d_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i9a5977b803ce461fb450e581a33af94f_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="id3ac6a96f62d4f7fadb8ea1bba78e5b8_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:OtherDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i69815041944e4db688d47fdb082071da_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:OtherDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ifb6aeefa6d694f4da8f99ec8963139f4_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:OtherDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i9bf3b2a3b83945189d836b22017bae6c_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:OtherDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="id8ff5af5dd654d78ae82381b4ff5c091_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia8f3b2ff0d314b83bd21e28ddf73579a_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="idd0dcfb8397941afbc7d94bbb6e5bca2_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i1d303ab1bee94ed895e2aebafaffbd60_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia0a1d56ef3df4db4b5b9e3ff7471217e_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i2aae567b886f48f391dce88b5e000a37_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i8aa444456f4e49f18949ac5093d6d236_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia3ade44ae6944e9a9c405ba66abc9a18_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i22bca552d5f648dc89d61df0099d79fe_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i8f1aaed225034af1a21480bce9ffa840_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ib577e667942b4f0fa3ade779900e989e_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i15e4ea568d334c03a1f836953e30dbd3_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i36f58f659c0a461792970b3fbb8621ee_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i4116a9db4b194906bccbf699401dce74_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia042e8e8000048feaa6050e88056e6be_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="iab6faf4da825442dbe3fc64b3b85e38f_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:OtherLongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i21d3c168115d46f8b230d2037ed6aae9_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:FixedIncomeSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0610646bb9624aafac6e14c5608181b6_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i34867b7304a24dd7a4007167be1b1d40_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="if7ebd31a63c74bf9abc0ef627013c05b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i89b13e0fa73347388ea591faae8a8d54_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7757f730a37a42c5b78c44e5e235e054_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ib39ca58f01294fb79bb25bc9314e316c_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i43f3cbef8281417ea3b30b185073dce0_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i303d7e07af114308b2b4a9b86a637641_I20181015">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-10-15</instant>
        </period>
    </context>
    <context id="ic7f86270e1594ea286b2519288fd1169_I20181015">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">gntx:SwingLoansMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-10-15</instant>
        </period>
    </context>
    <context id="i4f7cfd7d5f804a92bd393fde66a3411e_I20181015">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-10-15</instant>
        </period>
    </context>
    <context id="i684eafea87a84e3dad3696b2fa0c5133_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iee40820c8b2f4eeba6869634061075b5_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i6560452c21cd4b0e8cb281a633dd4b77_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">gntx:PatentAndOtherAssetsNetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iccecd64baade4e9cab6b4ad5f4229cb8_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:DeferredCompensationArrangementWithIndividualTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i251f8c7922aa4cc7b57b38fff3afe29b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:DeferredCompensationArrangementWithIndividualTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i720ce4088fe34bef815e613855272f1b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:DeferredCompensationArrangementWithIndividualTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ia20f6742f2a74c07a815ee1be4256062_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:DeferredCompensationArrangementWithIndividualTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i3b97900e22fc49e69d7cf0b6af439c4d_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">gntx:OmnibusIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i72338fedd6004ec391e1d9715f1c82ef_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">gntx:EmployeeStockOptionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i628fbbc476774832aedf5c728e25b9fc_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">gntx:OmnibusIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ia8ac8e607e99452298bf3b357206b954_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">gntx:EmployeeStockOptionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ice4fc9e3de434a7181f648472c47f56d_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">gntx:OmnibusIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i028a645d85fc4a168bbecf9b70336b54_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">gntx:OmnibusIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i849f37839fdf4a1d9dc892474bc4be17_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i30d2c744856040f287ecc6f4346f77fe_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="idd6bb625d1cf4e45bc2a108d9c8caecd_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i1b7ef60a633c44568f457c5b31123805_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">gntx:RestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iac01d5a75d6f4f5c9908c4cd149b2b2f_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">gntx:RestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i58d49527495745bb8901ad568f234e64_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:A1YearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i880b8afc018244d3be527d95eae44da2_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:A1YearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i795d554650ce46858b928f444b476e94_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:A1YearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i67d8d25b75164a159a87d2a4cfb03318_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:A1YearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i8f1338b15aaa49a1b7382942c4a0dd6d_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:A1YearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ib35f921a2a6343dc81edc8703d48296b_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:A1YearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ic619640025684518a36f4f0953efca1e_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:A1YearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i37c950189f114642a848c808a6075c5b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:TwoYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i267f19162bb5491fae1a12ddd2fb259a_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:TwoYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i7fa7de17da2f4dd9b48b122eda65bc62_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:TwoYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if32d1d6c921d47bb8304d0ee2676340b_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:TwoYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i4657a7024c884915bd691857c613727b_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:TwoYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i2a68a9352ce145bbaf00c849c1a89b08_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:ThreeYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ib677883cb79b4bf78e350c9b77b1dc9b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:ThreeYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ib4c37d6664c549d5847a304dcc53d0cc_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:ThreeYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i6a818808384a406a8f44f601e0d22cef_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:ThreeYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i2ab689e51ec34598a163d766e45cc258_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:ThreeYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i25c57c0539b047eaaca211a396ec7a17_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:ThreeYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i29c0130974c44060bb82296add8f3d71_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:ThreeYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i415da526cf1d42b587f083e89a406837_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FourYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i03188dc5be4e4fcd800b211b58a70228_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FourYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i82a0f4b34a284f11b8b463f156726e91_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FourYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i3313d21fbe6b4bb9b5d148965559c9ea_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FourYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i707102286f96459a95cb457224f5e7e5_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FourYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i9486a38de5724093a045183a45bdfb39_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FourYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i6b4455bff294462492378f7c13c206e8_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FourYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i91fc8d2a03c647adbedd7769175caf9d_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FourYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ifcc4c92479d644e9b23a4645dd067c04_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FourYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i6160885b08e24e4eb523a063a058e0e7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FiveYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="id123e46fd668464a9c6d1d5541c78b16_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FiveYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="idd08b71c75074995aafe7623bc35e38c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FiveYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i40b8f34b4ff24df88d8c08c4fb255b3b_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FiveYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i8e3e21a3714c46d18865c7e742903055_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FiveYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i300537b8e8fd4479b039583c68fa1929_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FiveYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i54cca89675c04e94ada066836707e91a_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FiveYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i2a2b643e27794ec595d4bc9a28164f45_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FiveYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i5953b12b4d8e4d5ba0cb79cac114d83b_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">gntx:FiveYearsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i53158584897a497f9cb9da2bae651151_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i4cde1042c51c4e098b548799ee08ff7c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i81a4f4c8d8bf4533add463f51a9ba816_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i72c746bc27054011a9421d53d3f3b604_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i9eecf6e97bb64d6baa29af3396d3fc97_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="idbdcc38f20154beab54d974999d37280_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ie94cb0a50fba448aa83661dfac732a51_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i7aba4aa6f4fb4194a59e343e1b7858fb_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="if83df09fa5e84ec69fc40f993a1d911f_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ied9c49a3d059430facee512a286ac7a6_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">gntx:RestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i9238e0aa28f94e179127a9c4820b2622_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">gntx:RestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ib327c16f82954bed8b7a65487c4c8532_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="id674a8ddc2b649e5bc11b4defb16aa42_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i885193f92e6441aaa71b8cf42e87b616_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i85f8c61ac0a74e538d66908addc9095c_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i60ed711660304f788f8e313bb7132df8_I20131231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis">gntx:EmployeeStockPurchasePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2013-12-31</instant>
        </period>
    </context>
    <context id="ic7d70b68d6a042138f35eca6e452bf6a_D20130101-20131231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis">gntx:EmployeeStockPurchasePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2013-01-01</startDate>
            <endDate>2013-12-31</endDate>
        </period>
    </context>
    <context id="i7f1c5e60f8a0446f98981cc3d88e310a_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis">gntx:EmployeeStockPurchasePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i1ae852c9f45947ecba66e2f6add97cd7_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis">gntx:EmployeeStockPurchasePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if201ce8ab77244f4941cbee47e891ad3_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis">gntx:EmployeeStockPurchasePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i1ba6baa142ac4acfb3393a6ab5956717_D20130101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis">gntx:EmployeeStockPurchasePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2013-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i375582fc075a47e9be379de861bd1eb6_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i5c81e7288c59458da1da33b433cf10f4_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i931524aa51f5492e8dfd6ee546096afb_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i368b62bbf85e4c3b81aa0cbd9c815cab_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:DE</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i2eab7ef41e414bf1997fa93a36582942_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:DE</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i68de3d7b23424a458730a60c90dd5cb1_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:DE</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i7c140f01c8ad453e8b53281fea08fe8c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:JP</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i8eddd5f96c7e47c283d969e97dc4e953_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:JP</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if300994d55ce46b0b2b596d9cd6558d6_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:JP</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i93a996ff19c647418e31955b346c65ae_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:MX</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="idf33fa24dfd74ec8b67cd1bbf627f0b4_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:MX</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ibc46603b18fc44a79149b013291135f1_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:MX</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="if9e41c28c06e4cf5b6ca515e939211c7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">gntx:OtherCountriesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i77c349bdfb3844c596b56f607308719c_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">gntx:OtherCountriesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i4d315a66dc2242b48733c6cc972caa76_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">gntx:OtherCountriesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i45d4f8f58098417284290b11e12bcdea_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i03bd0ca3092d40f2b11186fbfb3a4941_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i7ca088f38bff4b439b03f33d84078f3b_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i26efd9ddd3e84cf9a2a226a7a8e528f1_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i63be760ae4bc409d9e673db0b41b33eb_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="icd4ccb61c0604698bf592f29f77c4e97_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="id849d52975ec4155ad311d6396fe460a_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i3935e7c893d44dcfbfcbcd2f4df7d4e6_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia238ccb74a1a49148c213ffe23233b16_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i64bb91a655e545268c801e108c574f0a_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i9852398d40bc421d86d77f5f63c8c435_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i9cd3d22801324e1092f04598a5c3fac3_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ifee2349dbf7a49949cda3c9ca14eccfe_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:CorporateNonSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i932339cf8e864b73af3a3530f5f5dced_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:CorporateNonSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ie2da3cbd35f64758a03b245c73a17dfb_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:CorporateNonSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="icec7a780081b414da4fe8f6e1271ef7c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i65ee52ecd72c4f7aa3bedd4b354edcab_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i74ace3e6db444dae8fff218a02cb1c94_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i8c2f7b5d5a014efcb14be5c5d23f76ef_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7ece8d4dfa614ab684fb9a67c9ef9427_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i494569dd81684a419ebd672af1e06638_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i06091255a7564ff29dd6922fa07b2fb4_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:CorporateNonSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="id3f9682d07df458bbdef89d50a75a66a_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:CorporateNonSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ia54569a74884464ca31e87b36f872755_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:CorporateNonSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i228ca5ea38194a518911ce8a22c4fe0e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveMirrorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iafa822b0879346e09411b57ed967ef87_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveMirrorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ica8b0828344b409a980944d4fc91690d_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveMirrorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ida081d3e00344bd5b38db6743c371f86_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:HomeLinkModulesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ie47200f6939b46a29728cfac6ab980ba_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:HomeLinkModulesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i046b90d36e434086a8d470826711159e_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:HomeLinkModulesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveProductsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="iaf032aa8c2e646c0b007aa273337315b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:OtherProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iddec73fe214a484899a21df7777df784_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:OtherProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ib3085a3fad604e3c88de5cbb5f63fdcc_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:OtherProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i962a6aa045e14548aaaff46bbfa4c1e0_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">gntx:ToyotaMotorCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i090c576ce1ed4da5bb0e81095ef1caa7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">gntx:VolkswagenGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="icb3d3f7b811642c78789abb163a0f6c0_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">gntx:GeneralMotorsCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i81c598ce4ba14a97bbda5fcf3ae91901_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">gntx:ToyotaMotorCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="id31e47e68b9049f796ebad91a6066e69_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">gntx:VolkswagenGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ic456a0446fff4fbeb389fe7761cb2865_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">gntx:GeneralMotorsCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="iac88b514273a4335b7320159c64edd02_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">gntx:ToyotaMotorCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ic309a9d3ad6e4d93b3a75c2b52992bdb_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">gntx:VolkswagenGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i4dc2c13d9ab04df38403e1cdff79ccc2_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">gntx:GeneralMotorsCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i86ae80d7463a483b8fc77aa1dae652b2_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedTranslationAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i98c8b2ae66e44ad38255493e7f3c6afe_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedTranslationAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i09800ff36e9d43c9bdf2fdd0b1085c06_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedTranslationAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i69ad1b6029bd46b3adf5499da91847d0_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedTranslationAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7b8ca2df2eed4b53aa7d75ad464b16d9_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedTranslationAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i106a6718324a40c092977078c57ba7ab_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedTranslationAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="idefe55c889534e509546b145d2ba7658_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedTranslationAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ie883c0783d7d46ac87ebcd2e6f1432f3_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ib1caffda0b8546aeac324201fa9b2a47_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="id56b37c1982d48b9b7ea1f8ec55438bf_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="iba6284d904444e27bac69d73e455bf79_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i2ebb7272767347fabc6f18a94fcfdbed_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i2d7ed56205014f5d83d8ca00f1255321_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="icc0f37804b0c4489ae9c70450a52b8b4_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i12d7e45e65ec4b9db12641f2e1b07699_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iafa7ea3a451d499ebf0ff7a6d5c255f9_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i0d3b2121e205484781c9974529cfde1f_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i019a32fc541340d0b982a7c48572bb6a_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i0ca7eb43f3b244b4ad6dadbf8bacb112_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i4c3676f1106b481fba4394684aa2090b_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i00729196d1664b74887e91e4f20cafc1_I20130930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2013-09-30</instant>
        </period>
    </context>
    <context id="i427fe350c9194fb0aa0d38d3eb5a4240_D20200401-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:VaporsensIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i26f9290ec7ff4be5ade764cf82b2018b_D20201001-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:ArgilIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-10-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i4f3b157409a2422b823d2aa561fda829_D20210701-20210930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:ArgilIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-07-01</startDate>
            <endDate>2021-09-30</endDate>
        </period>
    </context>
    <context id="i0827fd9447b44b67b339552857cca8c6_D20210701-20210930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:AirCraftglassMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-07-01</startDate>
            <endDate>2021-09-30</endDate>
        </period>
    </context>
    <context id="i0f2233f4cf354001b744175a4cff7da7_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:GuardianOpticalTechnologiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i8a087335428847b6b225c8a187c7bbcf_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="icaffd761ca874b9580433f3d1f1f8f43_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if07fa0208ce946538f7f7f76734f5014_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i87546c5d698a424385c49426b4f5b12f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerContractsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="icd456d56d7174751a9b915ee6176ff14_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerContractsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ie60bc903c5f54c83aed1403f5b76f5a8_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:LicensingAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i45e9fb3f4bfd4477ac12bb93fc312d6b_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:VaporsensIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i450e215e583547a7b36e257326612302_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:ArgilIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i581be6563e2c44f5ba5194cc153f6908_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:AirCraftglassMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i72477e49301c4bd7b8797afdacbdf07b_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:GuardianOpticalTechnologiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if1c165183e644bdbbe6681b2f2420816_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:GuardianOpticalTechnologiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ia2f02bd832b44727878b1cab1449f477_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i4b1125435f21423a86a260cc90fa99fb_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ifed79b66936840d4b20a23d84dff1d8d_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="icf3f862370b7452baf17dee1389915e7_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i6b689915aa154b10bee91e40be44569a_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerContractsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i7a6f5ba073534d979679c6b6fcbd1ff1_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerContractsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ibde70151901e468e9f9f40aa1cbab44e_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:LicensingAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i979dc9fafb604ac9a04340abbbbb8b3d_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:VaporsensIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i5edc48f63b1d4748829fecf153ffe516_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:ArgilIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i163defd21a1e450db732a089f03918d2_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:AirCraftglassMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ifeace13af8654c2faf25a5ac65a8f717_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:HomeLinkMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="iefb2066680ed49a7ad7e18a8bdea1d16_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">gntx:PatentsandOtherIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ifcb8db72050543898984305cf172ad26_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">gntx:PatentsandOtherIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i9eda2f38ff0e46fdb4a4211396f43a7a_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">gntx:PatentsandOtherIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i96210e75ae7a44e9abc7352ea9920cd1_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ia0b9020730074a1381a894772f5225b1_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i3f3bb8234baf4644a7c9c90e1db2ac30_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i305430042eb84e56a1aae3748b52fe75_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:DE</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i72fb57c4c3af42c981af4f4d8ad6669c_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:DE</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i047171b478ca4e278bdba14abfb930e9_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:DE</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ib72c1108c75b41dcbcd110f44fd246eb_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:JP</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i9c28e2e913404fa19f389ea8f18d51a3_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:JP</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i8279448f17b541888587811011539364_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:JP</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i999de1dc7e394b8b9e0634e3dbedacce_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:MX</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i345962465c314359b748d6e6b8f283d8_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:MX</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i5bfb6ccdaa8548c38117223283acfa6e_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:MX</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="iae5d4de28afd40088cd176716c6e2750_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">gntx:OtherCountriesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i43fc0658b84944b0b810521c45ddbec7_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">gntx:OtherCountriesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i67414c44c95641848aaab611ed594292_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">gntx:OtherCountriesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="idb6e897cea224cff92477ec26bd928f5_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i547e06d008f54d8e99e17dfb9db7eb4b_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i9ce8551ad3134eb7af01c0e55c7fe018_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveProductsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i401eb80a682d4f65bf6b590fe74a2d84_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:OtherProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i8a049b2d72144e94833f01bb13c268e1_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:OtherProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i23b70634116d4afdae8be7eb6bc640fd_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:OtherProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ie2fcf336dfc3454884aede76163eb91e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveMirrorsElectronicsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="if0a6a36f57be41a39c0f1544a448b96b_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveMirrorsElectronicsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ia3e842c0b4594f8c9b2cba7f1203802d_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:HomeLinkModulesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i9f44700babfe4472b4b6574d00f0320a_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:HomeLinkModulesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i0d732cba764e4d73a27229bc3a9ae148_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ib131fb6dc8e344829a7228be2d739c74_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="id6a42cd3cb514320b8a50db8321b6fb7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:FireProtectionProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i1d586fd7fa894edcb5605c238d738e6b_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:FireProtectionProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ib0289563decc48838603365db32cc3ca_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:WindowsProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="id8e6091436a549f98f3cec5a0a75e8af_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:WindowsProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i419a2d556706493ab4b2181a81a0cb1c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:NanofiberProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i104340ab2e74419a966cf79de451390b_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:NanofiberProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="id60dd28507764b14b6e630d722346293_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveMirrorsElectronicsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i177e86bcfa334e51ac4cd5a00f8a26e2_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:AutomotiveMirrorsElectronicsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">gntx:AutomotiveSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i0592e8d637154edb99f14b1e7b1b4742_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:DimmableAircraftWindowsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7b96520cf38e4f46825480ef0d53c1ad_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:DimmableAircraftWindowsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i6ae24574b4024cb186f4598862385a7e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:FireProtectionProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i9d85e0419def4d639ac195f7cff5571b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">gntx:FireProtectionProductsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:AllOtherSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ie984ed94a0254ac49419d2d9049e719a_D20200918-20200918">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:AirCraftGlassMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-09-18</startDate>
            <endDate>2020-09-18</endDate>
        </period>
    </context>
    <context id="ie9b19ab52caa4a538dd813c6efd0d0fd_I20200918">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:AirCraftGlassMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-09-18</instant>
        </period>
    </context>
    <context id="i373425908fc64771859e2db5ec439780_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:AirCraftGlassMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ic7812ec1edf943fa8e8ce14a899aa902_D20201214-20201214">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:ArgilIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-12-14</startDate>
            <endDate>2020-12-14</endDate>
        </period>
    </context>
    <context id="ic6c3253d988847f9a75a2d753b20baf0_I20201214">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">gntx:ArgilIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-14</instant>
        </period>
    </context>
    <context id="i2a1c6c35c88044999edfb3973b77c401_I20201214">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:ArgilIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-14</instant>
        </period>
    </context>
    <context id="if85739da91c84b92a64b857bfff42ba4_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:ArgilIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i97e1eaa8b9c54d5bbfc6d327ef28f9dd_I20210303">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:GuardianOpticalTechnologiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-03</instant>
        </period>
    </context>
    <context id="idff44393eac6444595ac181eb9b8e01d_I20210930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:GuardianOpticalTechnologiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="i144180508ee2439688b28049016913df_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:GuardianOpticalTechnologiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i2e1fe2d4223b434281190c8cfc2bec52_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:GuardianOpticalTechnologiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i069c6407b80d44a8b0e2db90a740af01_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">gntx:GuardianOpticalTechnologiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i6d3583964494432b9c3e4eacf80e4de7_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000355811</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="plan">
        <measure>gntx:plan</measure>
    </unit>
    <unit id="automotivecustomer">
        <measure>gntx:automotiveCustomer</measure>
    </unit>
    <dei:EntityCentralIndexKey
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV80L2ZyYWc6OGIxZGQ4ZTdiZTk4NGY2YjljYzFjZmQ0ZTVlYWJmMDYvdGFibGU6ZTRkMWE1MjUzZWJlNDVjZGI5YjIzYTQ1ZWJmZDJkZmEvdGFibGVyYW5nZTplNGQxYTUyNTNlYmU0NWNkYjliMjNhNDVlYmZkMmRmYV8wLTEtMS0xLTI1MDUx_2f8ab216-5ee7-4aff-830f-8b3a8982269c">0000355811</dei:EntityCentralIndexKey>
    <dei:DocumentFiscalYearFocus
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV80L2ZyYWc6OGIxZGQ4ZTdiZTk4NGY2YjljYzFjZmQ0ZTVlYWJmMDYvdGFibGU6ZTRkMWE1MjUzZWJlNDVjZGI5YjIzYTQ1ZWJmZDJkZmEvdGFibGVyYW5nZTplNGQxYTUyNTNlYmU0NWNkYjliMjNhNDVlYmZkMmRmYV8yLTEtMS0xLTI1MDUx_377bad5b-afdb-4e48-aa61-9d1b64487e33">2021</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV80L2ZyYWc6OGIxZGQ4ZTdiZTk4NGY2YjljYzFjZmQ0ZTVlYWJmMDYvdGFibGU6ZTRkMWE1MjUzZWJlNDVjZGI5YjIzYTQ1ZWJmZDJkZmEvdGFibGVyYW5nZTplNGQxYTUyNTNlYmU0NWNkYjliMjNhNDVlYmZkMmRmYV8zLTEtMS0xLTI1MDUx_87cae497-db6e-4d36-a7d2-5e2b44309a8f">FY</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV80L2ZyYWc6OGIxZGQ4ZTdiZTk4NGY2YjljYzFjZmQ0ZTVlYWJmMDYvdGFibGU6ZTRkMWE1MjUzZWJlNDVjZGI5YjIzYTQ1ZWJmZDJkZmEvdGFibGVyYW5nZTplNGQxYTUyNTNlYmU0NWNkYjliMjNhNDVlYmZkMmRmYV83LTEtMS0xLTI1MDUx_29453508-901a-4fe0-97b4-81a32e95a1aa">false</dei:AmendmentFlag>
    <us-gaap:OperatingLeaseLiabilityStatementOfFinancialPositionExtensibleList
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzYvZnJhZzphZWIwZTU0Yzk2ZDQ0ZjUyOTRlMDMzOGRkMTVhYjhmNS90YWJsZTozZDczZTczMmU5Zjc0YjY5YWNjNWE1YTg2ZWFiNmE5YS90YWJsZXJhbmdlOjNkNzNlNzMyZTlmNzRiNjlhY2M1YTVhODZlYWI2YTlhXzEtMS0xLTEtMjUwNTE_b1190018-6e86-4714-be8d-614280639bb5"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ice4fc9e3de434a7181f648472c47f56d_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzIyNDk_44101bdb-7601-41d1-a00f-00381c0001f8">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="ice4fc9e3de434a7181f648472c47f56d_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzIyNzY_8890b6b8-7be6-49a7-9fcb-65c7bdb2a802">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <dei:DocumentType
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMjk4_295671b4-39c7-49da-8445-8d71fa06389d">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6MzJjMDhhM2IwYjA0NGFkNWE5ZjkyMmY0YzlkYjQwYjEvdGFibGVyYW5nZTozMmMwOGEzYjBiMDQ0YWQ1YTlmOTIyZjRjOWRiNDBiMV8wLTAtMS0xLTI1MDUx_50e89a70-2320-4662-8987-b4deb2ff08cb">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8xMzE_1946fb14-9f67-4853-bbf0-240216c8b514">2021-12-31</dei:DocumentPeriodEndDate>
    <dei:CurrentFiscalYearEndDate
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8xMzE_95dd2e33-35ec-4dca-b2dc-a9d79f8c5f41">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentTransitionReport
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6MjY4YzAzNGJjZWFmNGZiMjk2ZWZmNzY3MjkwNTVhNDUvdGFibGVyYW5nZToyNjhjMDM0YmNlYWY0ZmIyOTZlZmY3NjcyOTA1NWE0NV8wLTAtMS0xLTI1MDUx_8bbfa902-429c-426f-aa9a-a38a813e258e">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMzA1_d10eb5e7-776e-4eb7-a2b6-c8766bb8c308">000-10235</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMzAy_cb283596-1fa3-4eb6-8328-2ac798eac0f2">GENTEX CORPORATION</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6M2Y0Y2M0ZmZmYTI3NGU2NWJlN2JlMzZhMTkwNGQyYTQvdGFibGVyYW5nZTozZjRjYzRmZmZhMjc0ZTY1YmU3YmUzNmExOTA0ZDJhNF8wLTAtMS0xLTI1MDUx_d29c8795-ab43-469e-8d90-cee2c845dcb3">MI</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6M2Y0Y2M0ZmZmYTI3NGU2NWJlN2JlMzZhMTkwNGQyYTQvdGFibGVyYW5nZTozZjRjYzRmZmZhMjc0ZTY1YmU3YmUzNmExOTA0ZDJhNF8wLTMtMS0xLTI1MDUx_86715692-43b6-451e-8a23-025e87569178">38-2030505</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6M2Y0Y2M0ZmZmYTI3NGU2NWJlN2JlMzZhMTkwNGQyYTQvdGFibGVyYW5nZTozZjRjYzRmZmZhMjc0ZTY1YmU3YmUzNmExOTA0ZDJhNF8zLTAtMS0xLTI1MDUx_b1fd2b86-02e0-48dc-9bd3-3a417631b913">600 N. Centennial Street,</dei:EntityAddressAddressLine1>
    <dei:EntityAddressPostalZipCode
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6M2Y0Y2M0ZmZmYTI3NGU2NWJlN2JlMzZhMTkwNGQyYTQvdGFibGVyYW5nZTozZjRjYzRmZmZhMjc0ZTY1YmU3YmUzNmExOTA0ZDJhNF8zLTMtMS0xLTI1MDUx_2ece7950-6777-4e23-8f32-0b0c69464630">49464</dei:EntityAddressPostalZipCode>
    <dei:EntityAddressCityOrTown
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6M2Y0Y2M0ZmZmYTI3NGU2NWJlN2JlMzZhMTkwNGQyYTQvdGFibGVyYW5nZTozZjRjYzRmZmZhMjc0ZTY1YmU3YmUzNmExOTA0ZDJhNF80LTAtMS0xLTI1MDUx_de336e03-c3ef-4e48-ab1e-9c8665247e92">Zeeland,</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6M2Y0Y2M0ZmZmYTI3NGU2NWJlN2JlMzZhMTkwNGQyYTQvdGFibGVyYW5nZTozZjRjYzRmZmZhMjc0ZTY1YmU3YmUzNmExOTA0ZDJhNF80LTEtMS0xLTI1MDUx_82e6ef51-b54d-433e-81ae-b1ef4146120a">MI</dei:EntityAddressStateOrProvince>
    <dei:CityAreaCode
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMzA4_444a5a12-6340-4129-aec2-7400aa649a91">616</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMzAz_4349d621-2043-427c-8012-542bf0ab0624">772-1800</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6MTI3ZWFjNDUzZmU4NDJlODlmYWE3YzZiZTU4ZGUzNWMvdGFibGVyYW5nZToxMjdlYWM0NTNmZTg0MmU4OWZhYTdjNmJlNThkZTM1Y18xLTAtMS0xLTI1MDUx_d01951b2-3f9c-4824-9799-a956ed222e83">Common&#160;Stock,&#160;par&#160;value&#160;$.06&#160;per&#160;share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6MTI3ZWFjNDUzZmU4NDJlODlmYWE3YzZiZTU4ZGUzNWMvdGFibGVyYW5nZToxMjdlYWM0NTNmZTg0MmU4OWZhYTdjNmJlNThkZTM1Y18xLTEtMS0xLTI1MDUx_4ee110cf-1503-49f8-b376-ded77caafae8">GNTX</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6MTI3ZWFjNDUzZmU4NDJlODlmYWE3YzZiZTU4ZGUzNWMvdGFibGVyYW5nZToxMjdlYWM0NTNmZTg0MmU4OWZhYTdjNmJlNThkZTM1Y18xLTItMS0xLTI1MDUx_d57917f1-7121-46b1-b73f-49e28dc573fe">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMzA2_488bcd01-f183-4d9a-87d6-8cf6342b0ef2">Yes</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMzA3_a93bc42b-8cba-40ff-8b21-cb799974ef69">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMjk5_91fad0ec-0259-4ca6-8c9e-39e93bed9d71">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMzAw_b61b5829-53e1-4e6d-8597-013ef34e6ba6">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6OWFlYzA4MzQ5M2VkNDY4Mjg1M2MwZTVlZjA4MDg1ZDYvdGFibGVyYW5nZTo5YWVjMDgzNDkzZWQ0NjgyODUzYzBlNWVmMDgwODVkNl8wLTAtMS0xLTI1MDUx_afd46ab2-7988-4d62-9af0-9d9ee58a3c1c">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6OWFlYzA4MzQ5M2VkNDY4Mjg1M2MwZTVlZjA4MDg1ZDYvdGFibGVyYW5nZTo5YWVjMDgzNDkzZWQ0NjgyODUzYzBlNWVmMDgwODVkNl8xLTQtMS0xLTI1MDUx_dba3ff3d-947c-4fd0-a267-1b5ed07ed078">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGFibGU6OWFlYzA4MzQ5M2VkNDY4Mjg1M2MwZTVlZjA4MDg1ZDYvdGFibGVyYW5nZTo5YWVjMDgzNDkzZWQ0NjgyODUzYzBlNWVmMDgwODVkNl8yLTQtMS0xLTI1MDUx_c1121906-648a-4b15-93c2-e8a78681b08a">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMzA0_eb7efc83-2ede-4af2-bbdf-0cbf81ffd37e">true</dei:IcfrAuditorAttestationFlag>
    <dei:EntityShellCompany
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMzAx_44454a02-1676-4b22-9206-aef254d466e1">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="i0a4407e01e964008a89c551e26193144_I20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMDIy_527964fd-f8d9-4a55-90b6-f3cc3c191268"
      unitRef="usd">8237710781</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i79c3d98384ce41328a4989a3c5c25692_I20220201"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xL2ZyYWc6ZDFiYWU2ZjExMDkyNDYzMDkyZDZkMzY4ZWFmYTgzZWUvdGV4dHJlZ2lvbjpkMWJhZTZmMTEwOTI0NjMwOTJkNmQzNjhlYWZhODNlZV8zMDgw_77426616-3a3a-4096-a4e2-8641caac0cf0"
      unitRef="shares">236421351</dei:EntityCommonStockSharesOutstanding>
    <dei:AuditorFirmId
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV82NC9mcmFnOjE3ZTU5MTUxMzVjZjQ3NGY4NmY2MGJlOTk0MWJhODZmL3RhYmxlOmMzODAwMjJiODRiYTQzYTViN2FhZGJiNTIwYWEyM2Y1L3RhYmxlcmFuZ2U6YzM4MDAyMmI4NGJhNDNhNWI3YWFkYmI1MjBhYTIzZjVfMS0wLTEtMS0yOTA2MS90ZXh0cmVnaW9uOmYzYThiODcxMzI2ODQ3Njk5ZjNhZjg3NzE3NzQ0MGYxXzE2NDkyNjc0NDIzNTU_471a077d-a0fc-406c-9d98-7578c7cf7bb0">42</dei:AuditorFirmId>
    <dei:AuditorName
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMDYvZnJhZzoxYmQ1Yzc4NzIwZGM0MTI5OTMyYjM5ZWRkYjEwZDhjOS90ZXh0cmVnaW9uOjFiZDVjNzg3MjBkYzQxMjk5MzJiMzllZGRiMTBkOGM5XzE2NDkyNjc0NTgzMzM_90bd9094-e42f-4135-a8fc-44f1edfdaa64">Ernst &amp; Young LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMDYvZnJhZzoxYmQ1Yzc4NzIwZGM0MTI5OTMyYjM5ZWRkYjEwZDhjOS90ZXh0cmVnaW9uOjFiZDVjNzg3MjBkYzQxMjk5MzJiMzllZGRiMTBkOGM5XzE2NDkyNjc0NTgzMzI_1ec31bdd-3b81-4378-9963-24e3955a27bf">Grand Rapids, Michigan</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzMtMS0xLTEtMjUwNTE_579fff87-a909-45cf-99f8-429d89c1b94b"
      unitRef="usd">262311670</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzMtMy0xLTEtMjUwNTE_cef34a13-6a0c-4bfd-8fe2-9d26c3e176e3"
      unitRef="usd">423371036</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:ShortTermInvestments
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQtMS0xLTEtMjUwNTE_4f776370-92d0-488b-acd7-70bcc6afb0fe"
      unitRef="usd">5423612</us-gaap:ShortTermInvestments>
    <us-gaap:ShortTermInvestments
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQtMy0xLTEtMjUwNTE_e207f707-53ee-4543-abf9-189fdec746c4"
      unitRef="usd">27164369</us-gaap:ShortTermInvestments>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzUtMS0xLTEtMjUwNTE_b06cbdcc-b167-434c-be80-25f1e934de37"
      unitRef="usd">249794906</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzUtMy0xLTEtMjUwNTE_7f937f77-c10c-4481-a0ff-56f396882104"
      unitRef="usd">284925335</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryNet
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzYtMS0xLTEtMjUwNTE_6871151b-fd8c-452b-a1b2-d994005d60c5"
      unitRef="usd">316267442</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzYtMy0xLTEtMjUwNTE_0b1a34ba-3429-4b1f-b0c3-91de6e8db815"
      unitRef="usd">226291843</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzctMS0xLTEtMjUwNTE_9e882ca6-1ef6-43cd-9fe1-fcd3939ad4d2"
      unitRef="usd">39178119</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzctMy0xLTEtMjUwNTE_461b2a3f-ce96-4223-8069-be4a06089603"
      unitRef="usd">17577981</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzgtMS0xLTEtMjUwNTE_c7c9d89d-b3db-478b-9091-67e8f02a1ed6"
      unitRef="usd">872975749</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzgtMy0xLTEtMjUwNTE_40a581cd-2a37-4e9e-893b-a700d09c85bd"
      unitRef="usd">979330564</us-gaap:AssetsCurrent>
    <us-gaap:BuildingsAndImprovementsGross
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzEwLTEtMS0xLTI1MDUx_efa557d5-64b5-4699-b143-b2ee248dfdaf"
      unitRef="usd">363646380</us-gaap:BuildingsAndImprovementsGross>
    <us-gaap:BuildingsAndImprovementsGross
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzEwLTMtMS0xLTI1MDUx_fdb1595a-1b87-4964-a831-4bc8a082749c"
      unitRef="usd">350574243</us-gaap:BuildingsAndImprovementsGross>
    <us-gaap:MachineryAndEquipmentGross
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzExLTEtMS0xLTI1MDUx_58cf36a6-f50c-4dea-999f-f065f9b19097"
      unitRef="usd">883240100</us-gaap:MachineryAndEquipmentGross>
    <us-gaap:MachineryAndEquipmentGross
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzExLTMtMS0xLTI1MDUx_acc1fd6f-cd04-4487-91c3-068814c3dd26"
      unitRef="usd">857583647</us-gaap:MachineryAndEquipmentGross>
    <us-gaap:ConstructionInProgressGross
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzEyLTEtMS0xLTI1MDUx_a7b4ac24-13c5-469f-8b36-e896e5a07f44"
      unitRef="usd">77592152</us-gaap:ConstructionInProgressGross>
    <us-gaap:ConstructionInProgressGross
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzEyLTMtMS0xLTI1MDUx_14429442-b5e0-4ff7-bd83-d8f9b85e255b"
      unitRef="usd">49048555</us-gaap:ConstructionInProgressGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzEzLTEtMS0xLTI1MDUx_1591b065-76d6-42b0-b0a6-7968ecc3304e"
      unitRef="usd">1324478632</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzEzLTMtMS0xLTI1MDUx_a9a73d25-3abb-475f-a9da-557e0c130ac8"
      unitRef="usd">1257206445</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzE0LTEtMS0xLTI1MDUx_6b718c8a-4829-45fd-98bb-edd1ee590a29"
      unitRef="usd">860356956</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzE0LTMtMS0xLTI1MDUx_aa9737a2-630f-4b2f-a50b-ea0fcd265f16"
      unitRef="usd">789071310</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzE1LTEtMS0xLTI1MDUx_3e88e655-5adb-4ea8-b07d-f6a5a75425b4"
      unitRef="usd">464121676</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzE1LTMtMS0xLTI1MDUx_6a7af126-b1b7-4c44-9559-e99176793229"
      unitRef="usd">468135135</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:Goodwill
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzE3LTEtMS0xLTI1MDUx_b17759b1-2c26-4128-b8cb-7d9e0a671030"
      unitRef="usd">313960209</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzE3LTMtMS0xLTI1MDUx_b2efbd5f-58b4-48f7-85f3-f98e0d11302c"
      unitRef="usd">311922787</us-gaap:Goodwill>
    <us-gaap:LongTermInvestments
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzE4LTEtMS0xLTI1MDUx_b76c8811-c518-4dfa-97a3-71d60721da68"
      unitRef="usd">207693147</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzE4LTMtMS0xLTI1MDUx_3667525c-5908-4fdc-9450-80fd1dc4cb72"
      unitRef="usd">162028068</us-gaap:LongTermInvestments>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzE5LTEtMS0xLTI1MDUx_ed116034-8fc9-45ba-85b1-ec1ede11344f"
      unitRef="usd">239189627</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzE5LTMtMS0xLTI1MDUx_e85f4075-f0a0-4158-a0c0-3f47ab769f05"
      unitRef="usd">249748127</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <gntx:PatentandOtherAssetsNet
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzIwLTEtMS0xLTI1MDUx_d1c60a10-7262-4ebc-acb8-9ee50ac31577"
      unitRef="usd">33450758</gntx:PatentandOtherAssetsNet>
    <gntx:PatentandOtherAssetsNet
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzIwLTMtMS0xLTI1MDUx_809d8119-18e9-4ac2-a359-347de7f3bfbc"
      unitRef="usd">26776489</gntx:PatentandOtherAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzIxLTEtMS0xLTI1MDUx_90cc287a-8cf6-469f-954c-755c2196cb4a"
      unitRef="usd">794293741</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzIxLTMtMS0xLTI1MDUx_04b3687c-f2a1-4034-8da8-b8c42ead4265"
      unitRef="usd">750475471</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzIyLTEtMS0xLTI1MDUx_857948bb-ad45-4590-8299-72b2f8163aa5"
      unitRef="usd">2131391166</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzIyLTMtMS0xLTI1MDUx_5683ff22-4a46-4067-a070-c6af1156a6ac"
      unitRef="usd">2197941170</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzI1LTEtMS0xLTI1MDUx_88ca73df-38ff-49fb-83a0-7f7211a703cf"
      unitRef="usd">98342928</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzI1LTMtMS0xLTI1MDUx_9289bdea-1cee-4295-b1c5-049dd4b0e061"
      unitRef="usd">84784423</us-gaap:AccountsPayableCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzI3LTEtMS0xLTI1MDUx_94e19cc4-82a3-4b99-a410-d9c8f6c7ed1f"
      unitRef="usd">14019643</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzI3LTMtMS0xLTI1MDUx_f0e8c778-6052-4848-8943-fe1281756aea"
      unitRef="usd">18557799</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzI4LTEtMS0xLTI1MDUx_2336e7ce-9543-4a5a-9b95-dcbc09053858"
      unitRef="usd">196863</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzI4LTMtMS0xLTI1MDUx_86c3d031-bc25-4713-96a4-22ced685ab47"
      unitRef="usd">3790219</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedRoyaltiesCurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzI5LTEtMS0xLTI1MDUx_4d24b816-8310-4361-9ba3-995fc40e11f4"
      unitRef="usd">19140907</us-gaap:AccruedRoyaltiesCurrent>
    <us-gaap:AccruedRoyaltiesCurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzI5LTMtMS0xLTI1MDUx_bfc9fa3b-be1f-47b8-8482-a7f23345bb92"
      unitRef="usd">21056412</us-gaap:AccruedRoyaltiesCurrent>
    <us-gaap:DividendsPayableCurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzMwLTEtMS0xLTI1MDUx_7f367c77-9597-4f0f-91f9-54e1848fccf1"
      unitRef="usd">28372901</us-gaap:DividendsPayableCurrent>
    <us-gaap:DividendsPayableCurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzMwLTMtMS0xLTI1MDUx_53e7ec42-d3e8-40bc-85a9-70563a632e23"
      unitRef="usd">29243144</us-gaap:DividendsPayableCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzMyLTEtMS0xLTI1MDUx_27df6dbd-bca6-4c24-b86a-50cc75512b13"
      unitRef="usd">21582858</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzMyLTMtMS0xLTI1MDUx_4db2ed2a-851b-4b1b-8962-f745e2763fa9"
      unitRef="usd">20304860</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzMzLTEtMS0xLTI1MDUx_f890db76-b6ee-403b-8084-52dd5f167fb5"
      unitRef="usd">181656100</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzMzLTMtMS0xLTI1MDUx_9652b60b-7a7a-4352-8735-4ebcd1e30dd7"
      unitRef="usd">177736857</us-gaap:LiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzM1LTEtMS0xLTI1MDUx_bdc18410-6c85-4bbe-9d75-457147452c45"
      unitRef="usd">11746599</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzM1LTMtMS0xLTI1MDUx_627b146f-000c-4c0f-8c1c-272b09f4f30e"
      unitRef="usd">17300442</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzM4LTEtMS0xLTI1MDUx_59e6f793-fef2-4c07-b924-515016fe88e5"
      unitRef="usd">0</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzM4LTMtMS0xLTI1MDUx_0d48efc9-43ad-481c-b4f2-405fe874c881"
      unitRef="usd">38960743</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:Liabilities
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQwLTEtMS0xLTI1MDUx_eb5fd6aa-7a68-4bb2-9ab7-1899673956b2"
      unitRef="usd">193402699</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQwLTMtMS0xLTI1MDUx_2bbda8b3-9e89-4dc4-a645-b6469bfd5c5d"
      unitRef="usd">233998042</us-gaap:Liabilities>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ0LTAtMS0xLTI1MDUxL3RleHRyZWdpb246ZmE5OTgzZjJjNmE2NDY4ZTkyM2JkNzg5NzY5YTk0ZmNfMjg_862cacbb-2418-4cfd-a2e4-15abc0683bcc"
      unitRef="usdPerShare">0.06</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ0LTAtMS0xLTI1MDUxL3RleHRyZWdpb246ZmE5OTgzZjJjNmE2NDY4ZTkyM2JkNzg5NzY5YTk0ZmNfMjg_9bbcc469-6425-419f-9cae-a28e2a722eeb"
      unitRef="usdPerShare">0.06</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ0LTAtMS0xLTI1MDUxL3RleHRyZWdpb246ZmE5OTgzZjJjNmE2NDY4ZTkyM2JkNzg5NzY5YTk0ZmNfNDI_0dee4629-b6dc-46d1-8b2c-c648274cda3e"
      unitRef="shares">400000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ0LTAtMS0xLTI1MDUxL3RleHRyZWdpb246ZmE5OTgzZjJjNmE2NDY4ZTkyM2JkNzg5NzY5YTk0ZmNfNDI_5f8f4258-33b6-419c-a347-c7a5afcce9d8"
      unitRef="shares">400000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ0LTAtMS0xLTI1MDUxL3RleHRyZWdpb246ZmE5OTgzZjJjNmE2NDY4ZTkyM2JkNzg5NzY5YTk0ZmNfNjQ_096b75c0-3243-4117-8b4a-f218432e23ee"
      unitRef="shares">236440840</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ0LTAtMS0xLTI1MDUxL3RleHRyZWdpb246ZmE5OTgzZjJjNmE2NDY4ZTkyM2JkNzg5NzY5YTk0ZmNfNjQ_3b7d8d93-922e-45b0-8a05-5409679b8f54"
      unitRef="shares">236440840</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ0LTAtMS0xLTI1MDUxL3RleHRyZWdpb246ZmE5OTgzZjJjNmE2NDY4ZTkyM2JkNzg5NzY5YTk0ZmNfNzE_8a5b828d-fd29-479f-a33f-3304bc264f09"
      unitRef="shares">243692869</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ0LTAtMS0xLTI1MDUxL3RleHRyZWdpb246ZmE5OTgzZjJjNmE2NDY4ZTkyM2JkNzg5NzY5YTk0ZmNfNzE_9b4b8346-7b11-480a-875f-d1c077cdb0cc"
      unitRef="shares">243692869</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ0LTEtMS0xLTI1MDUx_d196a95a-2520-435a-8232-46c01c943f93"
      unitRef="usd">14186450</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ0LTMtMS0xLTI1MDUx_2713fea9-6372-4c20-87f6-73d9b63df76e"
      unitRef="usd">14621572</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ1LTEtMS0xLTI1MDUx_b773f80e-1c87-4f43-a1be-1c0b32c7d38c"
      unitRef="usd">879413385</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ1LTMtMS0xLTI1MDUx_ec2aa02a-49a6-4f1a-b145-0ccfeeedcfa7"
      unitRef="usd">852771508</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ2LTEtMS0xLTI1MDUx_8271c33c-0220-4494-a6ae-28dd5321b3f5"
      unitRef="usd">1042461388</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ2LTMtMS0xLTI1MDUx_da86f3b3-21f3-4b23-8a82-11cae6e5ed1f"
      unitRef="usd">1089698996</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ4LTEtMS0xLTI1MDUx_bd928b38-4e97-4eaa-b2f7-50d627260e56"
      unitRef="usd">1006655</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzQ4LTMtMS0xLTI1MDUx_d1009450-eb83-49f6-871f-6fc1330a6111"
      unitRef="usd">6082007</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzUwLTEtMS0xLTI1MDUx_0dfabaea-677b-465f-af1e-2606588e40e3"
      unitRef="usd">920589</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzUwLTMtMS0xLTI1MDUx_37138f08-bdd4-40aa-9acf-f416c49ad892"
      unitRef="usd">769045</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzUxLTEtMS0xLTI1MDUx_a57835a4-a26b-4ea8-87fa-502dcb157b71"
      unitRef="usd">1937988467</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzUxLTMtMS0xLTI1MDUx_7a41da39-e685-4d65-b274-87aad8c6b856"
      unitRef="usd">1963943128</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzUyLTEtMS0xLTI1MDUx_f24dde36-e28b-4b61-9853-7c806624b0cc"
      unitRef="usd">2131391166</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTUvZnJhZzo3NTJjZDZhMjYyOTE0ZTYwODJiMjg1NTUwYjM1NjRhMS90YWJsZTo4NmNkNDk4M2U3MWU0MjhlYWUwODI4Y2VjNTQ0MGQ0MS90YWJsZXJhbmdlOjg2Y2Q0OTgzZTcxZTQyOGVhZTA4MjhjZWM1NDQwZDQxXzUyLTMtMS0xLTI1MDUx_3e52bc8f-56d5-4d40-a451-d469103fe423"
      unitRef="usd">2197941170</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzEtMS0xLTEtMjUwNTE_fb07636f-e279-4d8d-accd-a70b755b08d4"
      unitRef="usd">1731169929</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzEtMy0xLTEtMjUwNTE_6fd53ace-c893-410e-9a4f-ebc93f87e675"
      unitRef="usd">1688189405</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzEtNS0xLTEtMjUwNTE_bf8ec7a3-26f0-49a2-a8ba-de11c4c66c5f"
      unitRef="usd">1858897406</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMtMS0xLTEtMjUwNTE_928e5a63-d087-4ace-a02f-bca1592fab80"
      unitRef="usd">1111462082</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMtMy0xLTEtMjUwNTE_c755f6ce-c4b3-4d67-b8c9-4da9a2051bbc"
      unitRef="usd">1082745885</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMtNS0xLTEtMjUwNTE_b787344d-03ff-41b9-888b-048afbd6ade5"
      unitRef="usd">1170589437</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzUtMS0xLTEtMjUwNTE_7ffe9626-2133-410b-b302-6ea31309619e"
      unitRef="usd">619707847</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzUtMy0xLTEtMjUwNTE_14dcda22-8457-478d-ac34-bf9312067c25"
      unitRef="usd">605443520</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzUtNS0xLTEtMjUwNTE_4f3c3777-4d11-42ed-9857-bcbfc078b93c"
      unitRef="usd">688307969</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzgtMS0xLTEtMjUwNTE_56463b73-eb95-4780-9a32-a22d8ec99e8b"
      unitRef="usd">117763676</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzgtMy0xLTEtMjUwNTE_f54a05c2-2e85-476c-ac39-1fa542114c58"
      unitRef="usd">115935047</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzgtNS0xLTEtMjUwNTE_030ca03f-a290-4e81-bfe4-787b793a1e8e"
      unitRef="usd">114687309</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzktMS0xLTEtMjUwNTE_a9135a58-cf69-44ab-b8d0-345ea211bbfb"
      unitRef="usd">92162193</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzktMy0xLTEtMjUwNTE_bd08a3c4-7f70-4075-ac8e-1492208a1900"
      unitRef="usd">89952381</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzktNS0xLTEtMjUwNTE_c0d81ea0-b2e6-493f-ad48-538ab0de609c"
      unitRef="usd">85083056</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:OperatingExpenses
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzExLTEtMS0xLTI1MDUx_0fa62371-58bc-4cf0-adf8-2affc72086f4"
      unitRef="usd">209925869</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzExLTMtMS0xLTI1MDUx_385f78e8-9045-4445-9d95-b39a9f9c7f1b"
      unitRef="usd">205887428</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzExLTUtMS0xLTI1MDUx_71a9a22f-f5e7-46ff-b8af-395d2cc94898"
      unitRef="usd">199770365</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzEzLTEtMS0xLTI1MDUx_6cfc59db-4158-4ec7-96ca-e5e1f7479b3d"
      unitRef="usd">409781978</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzEzLTMtMS0xLTI1MDUx_eba63c0d-46be-4230-97d3-56256831477c"
      unitRef="usd">399556092</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzEzLTUtMS0xLTI1MDUx_34f1ec9b-3efd-4a7f-8c3c-568d15ef4d85"
      unitRef="usd">488537604</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzE2LTEtMS0xLTI1MDUx_f8646ab0-e5fc-44bd-a615-73d772c7bd71"
      unitRef="usd">3589798</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzE2LTMtMS0xLTI1MDUx_4b27bd6b-746e-4af0-bd8e-cce0dc5f1844"
      unitRef="usd">6986303</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzE2LTUtMS0xLTI1MDUx_228cbca7-021a-4179-b74b-224fd6ba13a6"
      unitRef="usd">11230696</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzE4LTEtMS0xLTI1MDUx_42d14628-3848-4fbd-866f-6e4a2e80c825"
      unitRef="usd">2979960</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzE4LTMtMS0xLTI1MDUx_7088c9ee-1ea2-425d-a05e-d8012bd094eb"
      unitRef="usd">5270534</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzE4LTUtMS0xLTI1MDUx_30d0c33b-11b5-497d-b2fd-f938d9ab81aa"
      unitRef="usd">647034</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzE5LTEtMS0xLTI1MDUx_dbddb8eb-d671-4451-979b-622229414e29"
      unitRef="usd">6569758</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzE5LTMtMS0xLTI1MDUx_8f74127b-81fd-46b2-a84d-2c87c7dafa08"
      unitRef="usd">12256837</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzE5LTUtMS0xLTI1MDUx_84105521-d536-4f4a-8d64-70cf7b8d7f29"
      unitRef="usd">11877730</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzIxLTEtMS0xLTI1MDUx_d64f693a-c1b5-4ec6-8d2e-db7033ecd0e3"
      unitRef="usd">416351736</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzIxLTMtMS0xLTI1MDUx_b97a81b3-0d1b-4402-9560-53aa908f7805"
      unitRef="usd">411812929</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzIxLTUtMS0xLTI1MDUx_494859e2-f514-4e26-bd14-7d25712129bb"
      unitRef="usd">500415334</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzIzLTEtMS0xLTI1MDUx_d395039a-daab-4308-b39c-4156c1572939"
      unitRef="usd">55554504</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzIzLTMtMS0xLTI1MDUx_3265615f-53fe-4afe-b9ad-90d6c75c8266"
      unitRef="usd">64249308</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzIzLTUtMS0xLTI1MDUx_a114080b-0213-4c94-8403-6719c5ccdef3"
      unitRef="usd">75731395</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI1LTEtMS0xLTI1MDUx_fdf9059c-df7f-461b-97b1-9d0e61186b25"
      unitRef="usd">360797232</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI1LTMtMS0xLTI1MDUx_45dcad35-adbb-4465-ae2b-f9d48f4873b3"
      unitRef="usd">347563621</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI1LTUtMS0xLTI1MDUx_f29ac714-17c6-4137-a2d3-efa73ad05230"
      unitRef="usd">424683939</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTEtMS0xLTI1MDUx_cc53e3e3-b79b-4e99-8010-c87a6be12d13"
      unitRef="usdPerShare">1.51</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTMtMS0xLTI1MDUx_5fc23b0b-baf3-434d-994b-0f0fbdb96878"
      unitRef="usdPerShare">1.41</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTUtMS0xLTI1MDUx_872515fe-0b7c-46ab-927c-31083837560c"
      unitRef="usdPerShare">1.67</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTEtMS0xLTI1MDUx_0705a03c-2234-4df6-a491-d2010cb352ca"
      unitRef="usdPerShare">1.50</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTMtMS0xLTI1MDUx_12e7362a-ccc0-4f98-a639-475f8a223b36"
      unitRef="usdPerShare">1.41</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTUtMS0xLTI1MDUx_b798259c-4688-4065-92aa-4d499e92b262"
      unitRef="usdPerShare">1.66</us-gaap:EarningsPerShareDiluted>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMxLTEtMS0xLTI1MDUx_31b578fb-8f44-469c-bedd-988157664216"
      unitRef="usdPerShare">0.480</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMxLTMtMS0xLTI1MDUx_da80790d-1d43-4c5f-a79a-62e1f0a88374"
      unitRef="usdPerShare">0.480</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMxLTUtMS0xLTI1MDUx_5a77ea09-1096-49a1-8625-73bf90ac67ed"
      unitRef="usdPerShare">0.460</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:NetIncomeLoss
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzEtMS0xLTEtMjUwNTE_b6ef37fb-b978-40c7-a550-9780be92d016"
      unitRef="usd">360797232</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzEtMy0xLTEtMjUwNTE_5832ad00-45ea-4d02-ad6b-5abb2762538e"
      unitRef="usd">347563621</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzEtNS0xLTEtMjUwNTE_0bd6fecf-98a1-4e9a-b076-7949f6a0f199"
      unitRef="usd">424683939</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzUtMS0xLTEtMjUwNTE_4f5858f3-01ae-4fda-ad61-41b5a440f464"
      unitRef="usd">151544</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzUtMy0xLTEtMjUwNTE_51c8d9ca-6925-4b22-b9df-167d6e11b9d0"
      unitRef="usd">3153634</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzUtNS0xLTEtMjUwNTE_924fbea4-4ceb-42ba-9232-d9497457bf2f"
      unitRef="usd">-709702</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzctMS0xLTEtMjUwNTE_884689ea-a366-46d6-8ccc-5b54f059bc74"
      unitRef="usd">-6424496</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzctMy0xLTEtMjUwNTE_87eeae83-226e-4ea1-8d92-c671a82249dc"
      unitRef="usd">6312051</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzctNS0xLTEtMjUwNTE_09a1da3c-a1cb-4845-b97d-7b0bf0239cc3"
      unitRef="usd">1292325</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax>
    <us-gaap:OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzktMS0xLTEtMjUwNTE_9c92e055-638c-4a0f-b071-740f4245ffab"
      unitRef="usd">-6272952</us-gaap:OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzktMy0xLTEtMjUwNTE_5a2de215-e41c-4f6e-bce4-4d556ccba4ca"
      unitRef="usd">9465685</us-gaap:OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzktNS0xLTEtMjUwNTE_f0649d84-a1a6-4c18-8730-a16afa922a26"
      unitRef="usd">582623</us-gaap:OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossTaxPortionAttributableToParent1
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzExLTEtMS0xLTI1MDUx_983b0c00-ec69-4067-903d-9dc00205fac0"
      unitRef="usd">-1349144</us-gaap:OtherComprehensiveIncomeLossTaxPortionAttributableToParent1>
    <us-gaap:OtherComprehensiveIncomeLossTaxPortionAttributableToParent1
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzExLTMtMS0xLTI1MDUx_f013405e-5c60-43e8-9b87-3c66182f0033"
      unitRef="usd">1325530</us-gaap:OtherComprehensiveIncomeLossTaxPortionAttributableToParent1>
    <us-gaap:OtherComprehensiveIncomeLossTaxPortionAttributableToParent1
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzExLTUtMS0xLTI1MDUx_e1840553-ef9e-4bdf-9d3a-23f5f19ec628"
      unitRef="usd">271388</us-gaap:OtherComprehensiveIncomeLossTaxPortionAttributableToParent1>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzEzLTEtMS0xLTI1MDUx_469d7f1e-8644-402d-89f6-ee15deecd982"
      unitRef="usd">-4923808</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzEzLTMtMS0xLTI1MDUx_7d356758-66d8-4c1f-933f-681e0f2ff7c9"
      unitRef="usd">8140155</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzEzLTUtMS0xLTI1MDUx_c73a2b42-0a4c-4f64-956d-82f878f67687"
      unitRef="usd">311235</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzE1LTEtMS0xLTI1MDUx_67d75d2e-0746-4ef9-b3c9-2b40401d3c6e"
      unitRef="usd">355873424</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzE1LTMtMS0xLTI1MDUx_ec5e61dc-c2da-4cdb-80af-eb72dc381f48"
      unitRef="usd">355703776</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjEvZnJhZzo2Mjc2NmM4MjJhNzc0ZTMzOTljOGRlOTYzNmQ3ODVkZC90YWJsZToyNWMxYWRiNjY0YjQ0OWEyYjQzNjAxYzAyMTlmNzg5Ni90YWJsZXJhbmdlOjI1YzFhZGI2NjRiNDQ5YTJiNDM2MDFjMDIxOWY3ODk2XzE1LTUtMS0xLTI1MDUx_cda701cf-34ec-4297-ba63-bdd60b943ab6"
      unitRef="usd">424995174</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ica4861ffd71347418544b4a01be91ff1_I20181231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEtMS0xLTEtMjUwNTE_835e29bd-b32a-47ce-8756-f545d9cce0ac"
      unitRef="shares">259328613</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ica4861ffd71347418544b4a01be91ff1_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEtMy0xLTEtMjUwNTE_77b3d1db-a760-4674-8f46-f1c686a41deb"
      unitRef="usd">15559717</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if04a375449ce4542a3f3393188b5c6fe_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEtNS0xLTEtMjUwNTE_ff0b46f2-a800-42ff-bbf7-a42a0a4c51fa"
      unitRef="usd">745324144</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iaef136f19ccd40018357cd5c7972faab_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEtNy0xLTEtMjUwNTE_9eb2cc71-e509-49ef-9cf2-2d7a712ba4e4"
      unitRef="usd">1102468137</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iddc6889d260d43e289b9c2c8f6cd6d65_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEtOS0xLTEtMjUwNTE_5e014f13-39f0-49ea-8bdc-f730562c9db3"
      unitRef="usd">-1600338</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if97a82a25bb34a0bbf5a3ffc89bcdb23_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEtMTEtMS0xLTI1MDUx_aa652567-f8d3-4b01-a674-24ed3a531da0"
      unitRef="usd">1861751660</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="iab22950b1bb540d4ae8561033b8a3cbd_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzItMS0xLTEtMjUwNTE_e1a1dc5a-e12d-43aa-8781-fb8b54c60c4a"
      unitRef="shares">5724840</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="iab22950b1bb540d4ae8561033b8a3cbd_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzItMy0xLTEtMjUwNTE_412232e0-d319-4b85-8246-8318096c15d4"
      unitRef="usd">343490</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="ic7d0458e08694ea595f78d786d8d22d7_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzItNS0xLTEtMjUwNTE_fa7cbef4-763f-478d-b150-772766d9806a"
      unitRef="usd">77477661</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzItMTEtMS0xLTI1MDUx_5aebe4d8-ca63-4c23-a959-a34d8b2119a8"
      unitRef="usd">77821151</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="iab22950b1bb540d4ae8561033b8a3cbd_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzMtMS0xLTEtMjUwNTE_dc754643-1911-4c69-878a-f930b53b7241"
      unitRef="shares">13775938</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="iab22950b1bb540d4ae8561033b8a3cbd_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzMtMy0xLTEtMjUwNTE_e977dfe0-e049-4b62-85c6-18e2e62bcc0b"
      unitRef="usd">826556</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="ic7d0458e08694ea595f78d786d8d22d7_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzMtNS0xLTEtMjUwNTE_a89ea446-4eaf-4e79-bff1-a6f96a25647c"
      unitRef="usd">36544858</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="if1c91c3b32cb48b992814f07110da1c9_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzMtNy0xLTEtMjUwNTE_cc55d25d-90cd-49e2-8192-9cf7c0beeadd"
      unitRef="usd">294099978</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzMtMTEtMS0xLTI1MDUx_38693060-2c79-4590-957d-1e6d65b27142"
      unitRef="usd">331471392</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ic7d0458e08694ea595f78d786d8d22d7_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzQtNS0xLTEtMjUwNTE_4b1417e2-7459-4287-b457-57cc2669aa7d"
      unitRef="usd">21671192</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzQtMTEtMS0xLTI1MDUx_3b63d274-56e5-4094-a275-190b5619632f"
      unitRef="usd">21671192</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzYtMC0xLTEtMjUwNTEvdGV4dHJlZ2lvbjpiMzliMjQ0ZmJjYjc0ZmNkOTkwNDdlZDdmODk2NGVlM18yNw_7ef0a477-80c6-42e8-b231-2c2a99e412e4"
      unitRef="usdPerShare">0.46</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="if1c91c3b32cb48b992814f07110da1c9_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzYtNy0xLTEtMjUwNTE_039fc966-8af7-4d70-b56d-04ffb6cbe3a2"
      unitRef="usd">116679965</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzYtMTEtMS0xLTI1MDUx_3f6b6d7b-bd43-4fc7-b196-ee89c0faeaa4"
      unitRef="usd">116679965</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss
      contextRef="if1c91c3b32cb48b992814f07110da1c9_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzctNy0xLTEtMjUwNTE_ad336a27-ed9e-445f-8420-94b6de6e074b"
      unitRef="usd">424683939</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzctMTEtMS0xLTI1MDUx_8bacccd7-e1e0-44a0-9212-554475c37bfa"
      unitRef="usd">424683939</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i76f3f8eaf3ec42468f7cc72204136724_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzgtOS0xLTEtMjUwNTE_58a9e40c-e59b-4ef0-bd68-815571c60583"
      unitRef="usd">311235</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzgtMTEtMS0xLTI1MDUx_2635ec7f-8400-4ddc-81cd-1bf72b05ef21"
      unitRef="usd">311235</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="id69f5eec90444b46acbe2848ebf8b133_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzktMS0xLTEtMjUwNTE_0303e324-af83-4c02-b093-fb0ec28cc61e"
      unitRef="shares">251277515</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="id69f5eec90444b46acbe2848ebf8b133_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzktMy0xLTEtMjUwNTE_add81a74-f5ae-49e5-8f92-9de915ae6e54"
      unitRef="usd">15076651</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iee953fe6b1664a0a873c5a25250bbd46_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzktNS0xLTEtMjUwNTE_d818853a-a142-4100-95c6-5e2b04740e8b"
      unitRef="usd">807928139</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iebb5220090b146b6a5dfb9f10551031b_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzktNy0xLTEtMjUwNTE_9b730408-03f6-46ae-b808-a5cb5a2ed1b2"
      unitRef="usd">1116372133</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iac6ebb2edba4414499fd70a3f6535d14_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzktOS0xLTEtMjUwNTE_05181726-dd7e-4985-9314-932123cf0bb9"
      unitRef="usd">-1289103</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzktMTEtMS0xLTI1MDUx_86152393-20b0-4d9a-ae39-9567ec7dc255"
      unitRef="usd">1938087820</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="i6e41d2e0a204469f9667e0bdf4663ec0_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEwLTEtMS0xLTI1MDUx_9d97b536-cf3a-4adb-89b9-3a71c1df4cbd"
      unitRef="shares">2897689</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i6e41d2e0a204469f9667e0bdf4663ec0_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEwLTMtMS0xLTI1MDUx_3780c7c8-169a-43a9-9b4d-6c48a8b3b6df"
      unitRef="usd">173861</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i139357143e0f4eacbbbf3a149336c9b1_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEwLTUtMS0xLTI1MDUx_de203345-a166-4e94-a193-0d65d32ad891"
      unitRef="usd">41629779</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEwLTExLTEtMS0yNTA1MQ_fa8af6e3-05af-4450-a7d3-e4153fde9d48"
      unitRef="usd">41803640</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodSharesAcquisitions
      contextRef="i6e41d2e0a204469f9667e0bdf4663ec0_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzExLTEtMS0xLTI1NDI0_1f115e4c-7bc1-4316-bc49-12234f792bd6"
      unitRef="shares">163718</us-gaap:StockIssuedDuringPeriodSharesAcquisitions>
    <us-gaap:StockIssuedDuringPeriodValueAcquisitions
      contextRef="i6e41d2e0a204469f9667e0bdf4663ec0_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzExLTMtMS0xLTI1NDMx_3cbbc403-16eb-4bbf-834f-b74189f2d460"
      unitRef="usd">9823</us-gaap:StockIssuedDuringPeriodValueAcquisitions>
    <us-gaap:StockIssuedDuringPeriodValueAcquisitions
      contextRef="i139357143e0f4eacbbbf3a149336c9b1_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzExLTUtMS0xLTI1NDM4_dd1445c3-b5d5-4d3f-9c4d-bf9ac91cf145"
      unitRef="usd">3549406</us-gaap:StockIssuedDuringPeriodValueAcquisitions>
    <us-gaap:StockIssuedDuringPeriodValueAcquisitions
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzExLTExLTEtMS0yNTQ2Mg_695db24b-f626-4663-a9a1-b50196ac7287"
      unitRef="usd">3559229</us-gaap:StockIssuedDuringPeriodValueAcquisitions>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i6e41d2e0a204469f9667e0bdf4663ec0_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzExLTEtMS0xLTI1MDUx_06e289f0-0e33-4246-9a87-d7aad96949aa"
      unitRef="shares">10646053</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i6e41d2e0a204469f9667e0bdf4663ec0_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzExLTMtMS0xLTI1MDUx_394205c1-09c6-4732-9fcd-b41add055604"
      unitRef="usd">638763</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i139357143e0f4eacbbbf3a149336c9b1_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzExLTUtMS0xLTI1MDUx_90d0cb75-ee50-48a6-bd31-7f82a8238355"
      unitRef="usd">31133143</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i67be90339b7e4640a111b763b7f2d6a5_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzExLTctMS0xLTI1MDUx_a418a5eb-2e9b-4258-8c9d-a5c474a06585"
      unitRef="usd">256708600</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzExLTExLTEtMS0yNTA1MQ_680977c8-1d30-4059-b9ed-2792ba8d56f2"
      unitRef="usd">288480506</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i139357143e0f4eacbbbf3a149336c9b1_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEyLTUtMS0xLTI1MDUx_d4748ad9-1607-4e96-aecf-11050ef92c70"
      unitRef="usd">30797327</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEyLTExLTEtMS0yNTA1MQ_b37375e4-3af2-46d3-90bb-c67136ea08f0"
      unitRef="usd">30797327</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEzLTAtMS0xLTI1MDUxL3RleHRyZWdpb246ZGRlZGMyMTQzZWFiNDI2MGIxMzFiMDFjYjlkMWY3MDBfMjc_05fc91ab-150f-4deb-b4b3-8661ca818c6d"
      unitRef="usdPerShare">0.48</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="i67be90339b7e4640a111b763b7f2d6a5_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEzLTctMS0xLTI1MDUx_7c86a5aa-5297-4cd3-af30-25b15ef1b7b7"
      unitRef="usd">117528158</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzEzLTExLTEtMS0yNTA1MQ_e58b03f0-ec53-45fb-a211-2a04722df4da"
      unitRef="usd">117528158</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss
      contextRef="i67be90339b7e4640a111b763b7f2d6a5_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE0LTctMS0xLTI1MDUx_15ba3682-e853-4922-b0e2-c1eddb9411cf"
      unitRef="usd">347563621</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE0LTExLTEtMS0yNTA1MQ_ee6bc35e-2643-44ac-82d9-b359a85f335d"
      unitRef="usd">347563621</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i2bf016d15a94481a9017623065f4c619_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE1LTktMS0xLTI1MDUx_69485ce0-5ffa-4da9-9f05-a5c650b60d57"
      unitRef="usd">8140155</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE1LTExLTEtMS0yNTA1MQ_a8b0ba53-3843-480b-b129-d3bb38687674"
      unitRef="usd">8140155</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="if54d8f88383a4c9f91950598212430e2_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE2LTEtMS0xLTI1MDUx_7bdb2ab1-0e7f-4fbe-a04e-4b0186766ec1"
      unitRef="shares">243692869</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="if54d8f88383a4c9f91950598212430e2_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE2LTMtMS0xLTI1MDUx_11f4dab4-2409-49ef-b31a-8a74f27269ed"
      unitRef="usd">14621572</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iba105602652f48c586a9803244172672_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE2LTUtMS0xLTI1MDUx_06ac0e52-6e21-438e-a1be-8b47079b4979"
      unitRef="usd">852771508</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia0329f8789dc40d787c9deeb24cbd788_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE2LTctMS0xLTI1MDUx_0ae7bb02-72a1-4689-b52d-e2ec5415e79a"
      unitRef="usd">1089698996</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i089b50a3e3c74b6db4c30889ca03c153_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE2LTktMS0xLTI1MDUx_b227957c-a306-4327-955e-f5f64fd4a883"
      unitRef="usd">6851052</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE2LTExLTEtMS0yNTA1MQ_8bb6497b-de99-4a82-86ed-4dbc2fc871d7"
      unitRef="usd">1963943128</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="i1e2eaf27e9a647a381db2b60fb1e8940_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE3LTEtMS0xLTI1MDUx_6490fe18-ef4f-49fb-ab2c-7b5ac771b85c"
      unitRef="shares">2343169</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i1e2eaf27e9a647a381db2b60fb1e8940_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE3LTMtMS0xLTI1MDUx_143b5317-bf4f-441d-9751-5721fbb7e315"
      unitRef="usd">140590</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i54eb025adcc248ca9240855e85cd38c4_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE3LTUtMS0xLTI1MDUx_fc352dba-e94a-41ec-a283-e63eb0a39266"
      unitRef="usd">29668197</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE3LTExLTEtMS0yNTA1MQ_d20ca893-f7c1-422f-88b3-099754384f69"
      unitRef="usd">29808787</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i1e2eaf27e9a647a381db2b60fb1e8940_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE5LTEtMS0xLTI1MDUx_b55d14c5-9ea4-4bce-ae1b-71cc02b40ebf"
      unitRef="shares">9595198</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i1e2eaf27e9a647a381db2b60fb1e8940_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE5LTMtMS0xLTI1MDUx_4f4cbdfe-a6df-422d-a56e-90a8c4e8b11d"
      unitRef="usd">575712</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i54eb025adcc248ca9240855e85cd38c4_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE5LTUtMS0xLTI1MDUx_64aae54a-fb0e-4297-a763-67ca39a2405c"
      unitRef="usd">30447965</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i7d2a45c2f1eb44178713b2c25b181c10_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE5LTctMS0xLTI1MDUx_27d58069-ab3e-4169-885e-bd9f387e566a"
      unitRef="usd">293619458</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzE5LTExLTEtMS0yNTA1MQ_9838bd70-15e5-442a-be40-e49ba69e9895"
      unitRef="usd">324643135</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i54eb025adcc248ca9240855e85cd38c4_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzIwLTUtMS0xLTI1MDUx_c5b2c621-0255-4ea4-8b93-ff0550a0c6c6"
      unitRef="usd">27421645</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzIwLTExLTEtMS0yNTA1MQ_af5dcac5-7c5a-4d24-b4d9-250e6ad690d3"
      unitRef="usd">27421645</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzIxLTAtMS0xLTI1MDUxL3RleHRyZWdpb246Y2I0MDA1ZGY5NmI2NDA5MDhiOTI0ZmNjNmZmZDdiN2VfMjc_62935fe6-3004-44e1-96be-7df965f83c35"
      unitRef="usdPerShare">0.48</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="i7d2a45c2f1eb44178713b2c25b181c10_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzIxLTctMS0xLTI1MDUx_b1585d8e-7f28-44ce-aeff-2e8449b1d311"
      unitRef="usd">114415382</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzIxLTExLTEtMS0yNTA1MQ_15803fac-7b26-4989-b0d7-b8d5b67ede2d"
      unitRef="usd">114415382</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss
      contextRef="i7d2a45c2f1eb44178713b2c25b181c10_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzIyLTctMS0xLTI1MDUx_95718fff-fc51-4523-9960-e4abf9438246"
      unitRef="usd">360797232</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzIyLTExLTEtMS0yNTA1MQ_daeb3990-9b6a-4fb9-9ffb-52ec22a4a8bf"
      unitRef="usd">360797232</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="iaae53e96b1c24a8982e227c9cce48d04_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzIzLTktMS0xLTI1MDUx_87e86704-5439-469d-a8d3-625d39eb4805"
      unitRef="usd">-4923808</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzIzLTExLTEtMS0yNTA1MQ_0ebccc69-5c10-4611-9ba2-cc04b47ac174"
      unitRef="usd">-4923808</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i79fc8826275f4908a11e49608743082c_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzI0LTEtMS0xLTI1MDUx_7f36c8f4-2083-4389-84f9-a581411f4260"
      unitRef="shares">236440840</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i79fc8826275f4908a11e49608743082c_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzI0LTMtMS0xLTI1MDUx_07444ece-61ab-4003-ad88-a98b5c5fcdaf"
      unitRef="usd">14186450</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia5ff4055b0044df784477580e93c6408_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzI0LTUtMS0xLTI1MDUx_180c75fc-e69b-4411-8f58-3126f14700a3"
      unitRef="usd">879413385</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id196865609f24bdca1102b85738d38cc_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzI0LTctMS0xLTI1MDUx_71609ba2-eaba-420a-af45-306afec5c6dc"
      unitRef="usd">1042461388</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i402cb423a7354fcfb8c2dadfb7980d46_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzI0LTktMS0xLTI1MDUx_4ce66de2-2e2d-41d6-98cc-3ad50583f76a"
      unitRef="usd">1927244</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjQvZnJhZzowZDg3NTA5MDJlYmE0ZGE2YWFlMjdiZDEzM2Q5MWIwMi90YWJsZTo5ZjFhMDU5MWEyYzQ0MmFjYTgyMmUyNDZkZWViZWFhMC90YWJsZXJhbmdlOjlmMWEwNTkxYTJjNDQyYWNhODIyZTI0NmRlZWJlYWEwXzI0LTExLTEtMS0yNTA1MQ_c3246cb2-1a82-4402-af06-300e57d69b28"
      unitRef="usd">1937988467</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzItMS0xLTEtMjUwNTE_2d4109b6-e901-4c72-bdee-f8bb3994bb85"
      unitRef="usd">360797232</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzItMy0xLTEtMjUwNTE_007fdee4-a8ef-4ca4-ad05-661669ba4ee8"
      unitRef="usd">347563621</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzItNS0xLTEtMjUwNTE_ea971764-5fdf-4238-b0bc-a915b71e6f2b"
      unitRef="usd">424683939</us-gaap:NetIncomeLoss>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQtMS0xLTEtMjUwNTE_ca8cddd8-5d9a-4569-8e5a-0e10f9a4ab01"
      unitRef="usd">99112019</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQtMy0xLTEtMjUwNTE_59262817-a794-4ce3-bc16-f6c384fdff00"
      unitRef="usd">104739900</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQtNS0xLTEtMjUwNTE_2d3e5432-b414-41d3-874a-9bcb6b09c1f7"
      unitRef="usd">104702974</us-gaap:DepreciationDepletionAndAmortization>
    <gntx:GainOnDispositionOnAssets
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzUtMS0xLTEtMjUwNTE_8dbcdabe-cc3e-47f2-85c4-40e6a10e9716"
      unitRef="usd">488750</gntx:GainOnDispositionOnAssets>
    <gntx:GainOnDispositionOnAssets
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzUtMy0xLTEtMjUwNTE_10bc82e4-c348-40fe-94e1-7f0621745c23"
      unitRef="usd">311510</gntx:GainOnDispositionOnAssets>
    <gntx:GainOnDispositionOnAssets
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzUtNS0xLTEtMjUwNTE_bf20af4d-27e9-481e-a82e-4a287a9a0e38"
      unitRef="usd">155150</gntx:GainOnDispositionOnAssets>
    <gntx:LossOnDispositionOfAssets
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzYtMS0xLTEtMjUwNTE_ebc454e3-e146-4bed-8519-18ecfb7481d1"
      unitRef="usd">230933</gntx:LossOnDispositionOfAssets>
    <gntx:LossOnDispositionOfAssets
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzYtMy0xLTEtMjUwNTE_1b2d8989-034c-4fc8-89f7-9f435fd6509f"
      unitRef="usd">162553</gntx:LossOnDispositionOfAssets>
    <gntx:LossOnDispositionOfAssets
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzYtNS0xLTEtMjUwNTE_78728a5b-a871-422e-addf-a0029c669944"
      unitRef="usd">588941</gntx:LossOnDispositionOfAssets>
    <us-gaap:GainOnSaleOfInvestments
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzctMS0xLTEtMjUwNTE_aebe7b4f-1a48-4b29-a2bc-a6aa1f1d98a2"
      unitRef="usd">1379538</us-gaap:GainOnSaleOfInvestments>
    <us-gaap:GainOnSaleOfInvestments
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzctMy0xLTEtMjUwNTE_88f61313-558c-4d36-bd80-33504026a131"
      unitRef="usd">3163164</us-gaap:GainOnSaleOfInvestments>
    <us-gaap:GainOnSaleOfInvestments
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzctNS0xLTEtMjUwNTE_d367c480-5637-4601-a51e-c64b7452ed91"
      unitRef="usd">660643</us-gaap:GainOnSaleOfInvestments>
    <us-gaap:LossOnSaleOfInvestments
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzgtMS0xLTEtMjUwNTE_03551804-5c7d-4aa3-aeb5-9cd8b7108873"
      unitRef="usd">307490</us-gaap:LossOnSaleOfInvestments>
    <us-gaap:LossOnSaleOfInvestments
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzgtMy0xLTEtMjUwNTE_00a5c1be-617e-41f9-b195-0baf117c7519"
      unitRef="usd">1064508</us-gaap:LossOnSaleOfInvestments>
    <us-gaap:LossOnSaleOfInvestments
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzgtNS0xLTEtMjUwNTE_c7021b65-bacc-4226-ae6f-3a9e4848eff2"
      unitRef="usd">176360</us-gaap:LossOnSaleOfInvestments>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzEwLTEtMS0xLTI1MDUx_4d27ca44-79e9-450a-b626-833eaed320c1"
      unitRef="usd">-41694751</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzEwLTMtMS0xLTI1MDUx_17abe53f-f26f-44e3-a300-a734a487cb77"
      unitRef="usd">-15419722</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzEwLTUtMS0xLTI1MDUx_f42aef21-7987-432e-96b2-a63b5d2be9cf"
      unitRef="usd">-3358537</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:ShareBasedCompensation
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzExLTEtMS0xLTI1MDUx_c72bd93b-82d5-4617-b440-096a5c2e1627"
      unitRef="usd">27421645</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzExLTMtMS0xLTI1MDUx_90feea4e-85be-47c2-810e-de83ae9feadb"
      unitRef="usd">30797327</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzExLTUtMS0xLTI1MDUx_d21fa30c-3c3f-4b9e-b459-cf6d86ce3171"
      unitRef="usd">21671192</us-gaap:ShareBasedCompensation>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE0LTEtMS0xLTI1MDUx_a80bfdaa-a2c9-4e8c-a649-dc8c1eafd92b"
      unitRef="usd">-35135429</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE0LTMtMS0xLTI1MDUx_b4327050-d7b5-493c-8e80-17d45d14f30d"
      unitRef="usd">49290457</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE0LTUtMS0xLTI1MDUx_0eacafc4-a1d1-432a-bb6a-bd9e9ca4951a"
      unitRef="usd">21872527</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE1LTEtMS0xLTI1MDUx_4a4750c4-1d0e-4b73-a1dc-5d8d4a4de0d5"
      unitRef="usd">89975599</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE1LTMtMS0xLTI1MDUx_258d3c1f-ef0e-4378-b9d2-f23e7f0da668"
      unitRef="usd">-22725798</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE1LTUtMS0xLTI1MDUx_97dbfccc-9842-4ee4-9505-ab44f66d067c"
      unitRef="usd">23660256</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE2LTEtMS0xLTI1MDUx_b80706a1-5522-4939-8be2-189e6fc6bd52"
      unitRef="usd">20241994</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE2LTMtMS0xLTI1MDUx_ebcc3ad4-ec95-4cea-8f72-031348e09848"
      unitRef="usd">-10493993</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE2LTUtMS0xLTI1MDUx_8c23dfd7-10e2-4c40-9b76-a802216ea87d"
      unitRef="usd">3646457</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE3LTEtMS0xLTI1MDUx_38991b91-9d35-4ab1-9059-7cdf8650b12e"
      unitRef="usd">7266309</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE3LTMtMS0xLTI1MDUx_16e0e106-9441-4047-a587-83d6a50ca1bd"
      unitRef="usd">-12854038</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE3LTUtMS0xLTI1MDUx_1f6a0a87-5c28-4ff6-be39-3c4aee3a79eb"
      unitRef="usd">4743601</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE4LTEtMS0xLTI1MDUx_e0d0ddfc-2f4c-4529-a5e8-3076089aca6d"
      unitRef="usd">-14322863</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE4LTMtMS0xLTI1MDUx_74c89cd2-ffd4-43f1-aa47-20bee5f6e72d"
      unitRef="usd">27982962</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE4LTUtMS0xLTI1MDUx_b53b52fb-8c1d-4edb-abc2-589df6e437ed"
      unitRef="usd">2753427</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE5LTEtMS0xLTI1MDUx_48fd529a-bcdb-4cfd-8c3f-6675e9355556"
      unitRef="usd">362167562</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE5LTMtMS0xLTI1MDUx_91fd0b4d-500a-4386-91b2-a185df3e0305"
      unitRef="usd">464491771</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzE5LTUtMS0xLTI1MDUx_15665b23-a53b-4cc0-aaa0-d8dd7bd54352"
      unitRef="usd">505966864</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzIyLTEtMS0xLTI1MDUx_ae95bb28-4f59-4b2c-8335-9421c38736be"
      unitRef="usd">56237427</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzIyLTMtMS0xLTI1MDUx_be164c38-a0ea-4964-8f85-fdfecb1b7208"
      unitRef="usd">24455695</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzIyLTUtMS0xLTI1MDUx_c4ed88fc-c8c2-45fc-bb20-7fde72d6fdb7"
      unitRef="usd">57139135</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzIzLTEtMS0xLTI1MDUx_b54218a4-c60d-426e-8e80-3571da9d5eb8"
      unitRef="usd">27690000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzIzLTMtMS0xLTI1MDUx_18919fc8-88fe-4804-96be-f69e4e217827"
      unitRef="usd">142547368</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzIzLTUtMS0xLTI1MDUx_7d9c73fd-f4c4-4efd-87c9-1b800c19ffab"
      unitRef="usd">125013589</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI0LTEtMS0xLTI1MDUx_41c814b8-9a81-49b3-bd46-f7b15f2f46fe"
      unitRef="usd">113204199</us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt>
    <us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI0LTMtMS0xLTI1MDUx_6ccc5c50-983a-4794-a895-334b78943a73"
      unitRef="usd">73719189</us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt>
    <us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI0LTUtMS0xLTI1MDUx_8e408201-1e87-47d3-b1bb-842b6864dc49"
      unitRef="usd">153257603</us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI1LTEtMS0xLTI1MDUx_4d6aca73-1b21-47a7-aecc-018d0b5a59cf"
      unitRef="usd">68835047</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI1LTMtMS0xLTI1MDUx_25ef2a12-932c-42e0-86cc-3bd372af4f11"
      unitRef="usd">51706541</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI1LTUtMS0xLTI1MDUx_b066c97b-a498-404e-9547-cd9c4fe0d4c5"
      unitRef="usd">84580255</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI2LTEtMS0xLTI1MDUx_18d3248b-06e9-4454-85d1-8088e2b31810"
      unitRef="usd">2577855</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI2LTMtMS0xLTI1MDUx_1737a486-80d1-419a-b2a0-5adc08b4d1e1"
      unitRef="usd">383429</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI2LTUtMS0xLTI1MDUx_b85ef40e-3a2f-4c37-bcd9-dec0bfd5d71a"
      unitRef="usd">2001315</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI3LTEtMS0xLTI1MDUx_c37ce320-28c2-47ba-aec3-1e1fc36bb888"
      unitRef="usd">12071546</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI3LTMtMS0xLTI1MDUx_b672400f-2576-408d-b150-20053a6148c3"
      unitRef="usd">11216927</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI3LTUtMS0xLTI1MDUx_481687dc-87c2-4f5a-9c51-bd3ec9934e2e"
      unitRef="usd">0</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI4LTEtMS0xLTI1MDUx_9af365d2-bc14-499e-be98-dfb9f86d64b3"
      unitRef="usd">5501445</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI4LTMtMS0xLTI1MDUx_18052ac3-c450-4e24-973a-58a05cbea7e7"
      unitRef="usd">4327398</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI4LTUtMS0xLTI1MDUx_c7ce2626-efbf-4c1f-bf17-afc868f1a2b4"
      unitRef="usd">3027263</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI5LTEtMS0xLTI1MDUx_e4356943-4cf8-48f7-8b97-85a291b01172"
      unitRef="usd">-113106955</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI5LTMtMS0xLTI1MDUx_767d7fc8-e82c-4e48-9958-9c278e781678"
      unitRef="usd">26416437</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzI5LTUtMS0xLTI1MDUx_8c7a8ed4-a5da-4abf-8c48-be67e39cfb81"
      unitRef="usd">-56711082</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzMxLTEtMS0xLTI1MDUx_571dc4bb-1074-4600-be94-bd21f5a1eba6"
      unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzMxLTMtMS0xLTI1MDUx_46374375-77b8-4ce4-be97-d38cc2264f41"
      unitRef="usd">75000000</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzMxLTUtMS0xLTI1MDUx_371bbfef-ac8a-42a4-89a3-20ceef7a6fdc"
      unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzMyLTEtMS0xLTI1MDUx_5750f49b-055e-4de3-a62a-a614929ed3d5"
      unitRef="usd">0</us-gaap:RepaymentsOfLongTermDebt>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzMyLTMtMS0xLTI1MDUx_0f44745c-6a91-4f44-b191-bfd3bcd7613b"
      unitRef="usd">75000000</us-gaap:RepaymentsOfLongTermDebt>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzMyLTUtMS0xLTI1MDUx_ed8acbed-615e-413b-a867-c9d3a9ab9109"
      unitRef="usd">0</us-gaap:RepaymentsOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM0LTEtMS0xLTI1MDUx_3ca5467c-3b0f-45f4-aba8-aac486d43d64"
      unitRef="usd">29808787</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM0LTMtMS0xLTI1MDUx_fb67621c-5948-4891-b70b-7a8a5d24637b"
      unitRef="usd">41803640</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM0LTUtMS0xLTI1MDUx_9c6295ca-e597-4424-96ba-64faea582b5c"
      unitRef="usd">77821151</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM1LTEtMS0xLTI1MDUx_4854c681-b4b3-48c0-84c2-e552d932d424"
      unitRef="usd">115285625</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM1LTMtMS0xLTI1MDUx_16a0586d-9f5e-4c26-8741-2c775e6fe4d1"
      unitRef="usd">117181928</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM1LTUtMS0xLTI1MDUx_01c34b91-e30a-4538-860a-6cf24ba3b11b"
      unitRef="usd">116309197</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM2LTEtMS0xLTI1MDUx_7fd43d82-c3a7-4412-a254-69bf0442787e"
      unitRef="usd">324643135</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM2LTMtMS0xLTI1MDUx_69039002-35a3-474f-9e55-8235eb1912fe"
      unitRef="usd">288480506</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM2LTUtMS0xLTI1MDUx_43926a56-1f08-4590-9d2b-b811d00d0d55"
      unitRef="usd">331471392</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM4LTEtMS0xLTI1MDUx_cd1e2a03-a27e-4954-9b35-6fa208af96ef"
      unitRef="usd">-410119973</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM4LTMtMS0xLTI1MDUx_96564bc6-2b50-403f-8bc5-0c5c09e425d2"
      unitRef="usd">-363858794</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzM4LTUtMS0xLTI1MDUx_044ab9f2-f583-443d-8642-7f922abeb542"
      unitRef="usd">-369959438</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQwLTEtMS0xLTI1MDUx_be388f16-f7d1-40a6-8e51-a1f38078e55e"
      unitRef="usd">-161059366</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQwLTMtMS0xLTI1MDUx_6c1ea611-aae7-4524-902c-67e800150c4e"
      unitRef="usd">127049414</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQwLTUtMS0xLTI1MDUx_19a0bedc-31ad-4db4-8793-007a94575d13"
      unitRef="usd">79296344</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQyLTEtMS0xLTI1MDUx_353406f4-dad4-4bd4-8a2d-d7f8a221e3f8"
      unitRef="usd">423371036</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQyLTMtMS0xLTI1MDUx_01a6b32f-d774-4651-838b-8fa212b383dd"
      unitRef="usd">296321622</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="if97a82a25bb34a0bbf5a3ffc89bcdb23_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQyLTUtMS0xLTI1MDUx_127b5386-dbba-4885-ad2e-7d81ff729b08"
      unitRef="usd">217025278</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQ0LTEtMS0xLTI1MDUx_056ec02e-9792-46bc-84e0-9ffe0587d190"
      unitRef="usd">262311670</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQ0LTMtMS0xLTI1MDUx_8b39b646-7db9-4890-ab33-24ecb2a762cc"
      unitRef="usd">423371036</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMjcvZnJhZzo0MDhhZGUyNmUxMWU0ZTQ0YTQ1NTM4ZWNlZWQwN2QzNS90YWJsZTo4N2M2NzZiMzNiNzM0Yjk1OTY2OWFiNDkyNjQxMWM0MC90YWJsZXJhbmdlOjg3YzY3NmIzM2I3MzRiOTU5NjY5YWI0OTI2NDExYzQwXzQ0LTUtMS0xLTI1MDUx_0c0cae5a-714b-4399-9a3c-854baacbd2d6"
      unitRef="usd">296321622</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDMw_8ba638b3-553b-4efc-81d6-4a846cbe001c">SUMMARY OF SIGNIFICANT ACCOUNTING AND REPORTING POLICIES&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;The Company&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Gentex Corporation, including its wholly-owned subsidiaries (the "Company"), is a leading supplier of digital vision, connected car, dimmable glass, and fire protection products. The Company&#x2019;s largest business segment involves designing, developing, manufacturing, marketing, and supplying automatic-dimming rearview and non-dimming mirrors and various electronic modules for the automotive industry. The Company ships its product to all of the major automotive producing regions worldwide, which it supports with numerous sales, engineering and distribution locations worldwide.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A substantial portion of the Company&#x2019;s net sales and accounts receivable result from transactions with domestic and foreign automotive manufacturers and Tier 1 suppliers. The Company also designs, develops, manufactures, markets, and supplies dimmable aircraft windows for the aviation industry and commercial smoke alarms and signaling devices for the fire protection products industry.  The Company does not require collateral or other security for trade accounts receivable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant accounting policies of the Company not described elsewhere are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements include the accounts of Gentex Corporation and all of its wholly-owned subsidiaries. All intercompany accounts and transactions have been eliminated.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash equivalents consist of funds invested in bank accounts and money market funds that have daily liquidity.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Allowance For Doubtful Accounts&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company reviews a monthly aging report of all accounts receivable balances starting with invoices outstanding over sixty days. In addition, the Company monitors information about its customers through a variety of sources including the media, and information obtained through on-going interaction between Company personnel and the customer. Based on the evaluation of the above information, the Company estimates its allowances related to customer receivables on historical credit and collections experience, customers current financial condition and the specific identification of other potential problems, including the economic climate and impact the COVID-19 pandemic and supply chain constraints has had on specific customers. Actual collections can differ, requiring adjustments to the allowances, but historically such adjustments have not been material.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the activity in the Company&#x2019;s allowance for doubtful accounts:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:35.220%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.937%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.635%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.937%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.057%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.942%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Beginning&lt;br/&gt;Balance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net&lt;br/&gt;Additions/&lt;br/&gt;(Reductions)&lt;br/&gt;to Costs and&lt;br/&gt;Expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net Additions/Deductions&lt;br/&gt;and Other&lt;br/&gt;Adjustments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Ending&lt;br/&gt;Balance&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December&#160;31, 2021:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allowance for Doubtful Accounts&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,464,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(288,542)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,176,205&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December&#160;31, 2020:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allowance for Doubtful Accounts&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,451,293&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,454&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,464,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December&#160;31, 2019:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allowance for Doubtful Accounts&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,746,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(295,354)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,451,293&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s allowance for doubtful accounts primarily relates to financially distressed automotive customers. The Company continues to work with these financially distressed customers in collecting past due balances.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company follows the provisions of ASC 820, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Fair Value Measurements and Disclosures,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; for its financial assets and liabilities, and for its non-financial assets and liabilities subject to fair value measurements. ASC 820 provides a framework for measuring the fair value of assets and liabilities. This framework is intended to provide increased consistency in how fair value determinations are made under various existing accounting standards that permit, or in some cases, require estimates of fair-market value. This standard also expanded financial statement disclosure requirements about a company&#x2019;s use of fair-value measurements, including the effect of such measurement on earnings.  The cost of securities sold is based on the specific identification method.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company determines the fair value of its government securities, asset-backed securities, corporate bonds, and certain municipal bonds by utilizing monthly valuation statements that are provided by its broker. The broker determines the investment valuation by utilizing the bid price in the market and also refers to third party sources to validate valuations, and as such are classified as Level 2 assets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's certificates of deposit are classified as available for sale, and are considered as Level 1 assets.  These investments are carried at amortized cost, which approximates fair value.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company will also periodically make technology investments in certain non-consolidated third-parties. These equity investments are accounted for in accordance with ASC 321, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Investments - Equity Securities&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. Equity investments that do not have readily determinable fair values, and where the Company has not identified any observable events that would cause adjustment of the valuation to date, are held at cost.  These technology investments totaled $16.8 million and $4.0 million as of December 31, 2021 and December 31, 2020, respectively. These investments are classified within Long-Term Investments in the consolidated balance sheet and are not included within the tables below.  The $12.8&#160;million increase in the balance of these technology investments are a result of additional investments with third-parties for potential automotive and medical devices use-cases.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Assets or liabilities that have recurring fair value measurements are shown below as of December&#160;31, 2021 and December&#160;31, 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:23.509%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.345%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.400%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.904%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.400%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.904%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.400%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.024%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.904%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.910%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value Measurements at Reporting Date Using&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total as of&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Quoted&#160;Prices&#160;in&lt;br/&gt;Active Markets&lt;br/&gt;for Identical&lt;br/&gt;Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&#160;Other&lt;br/&gt;Observable&lt;br/&gt;Inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&lt;br/&gt;Unobservable&lt;br/&gt;Inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Description&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level I)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level 2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level 3)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash&#160;&amp;amp; Cash Equivalents&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;262,311,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;262,311,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,507,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,507,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,018,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,018,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,897,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,897,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,799,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,799,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,056,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,056,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,354,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,354,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Government Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,944,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,944,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;74,720,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;74,720,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;458,610,950&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;267,773,552&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;190,837,398&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:31.549%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.934%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.146%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.303%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value Measurements at Reporting Date Using&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total as of&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Quoted&#160;Prices&#160;in&lt;br/&gt;Active Markets&lt;br/&gt;for Identical&lt;br/&gt;Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&#160;Other&lt;br/&gt;Observable&lt;br/&gt;Inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&lt;br/&gt;Unobservable&lt;br/&gt;Inputs&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Description&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level I)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level 2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level 3)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash&#160;&amp;amp; Cash Equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;423,371,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;423,371,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,516,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,516,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,155,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,155,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Government Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,678,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,678,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,284,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,284,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,528,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,528,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,924,537&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,924,537&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,645,520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,645,520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,024,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,024,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;107,407,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;107,407,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;608,537,328&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;430,062,110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;178,475,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amortized cost, unrealized gains and losses, and market value of investment securities are shown as of December&#160;31, 2021 and 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.371%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:35.767%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.615%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.615%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.615%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Market Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,500,543&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,227&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,507,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,994,639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,801&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,018,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,897,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,897,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,352,630&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,771&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(587,888)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,799,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,001,714&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54,996&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,056,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,716,866&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;168,416&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(530,353)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,354,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Government Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;48,385,672&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,939&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(497,575)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,944,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;72,175,568&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,747,964&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(203,052)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;74,720,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;195,025,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,093,114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,818,868)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;196,299,280&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.528%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:35.076%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.960%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.329%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.221%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.545%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Market Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,502,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,516,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,084,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;70,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,155,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Governmental Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,635,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,318&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,678,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,160,376&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;124,389&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,284,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,528,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,528,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,681,113&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;800,802&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(557,378)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,924,537&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,503,898&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;141,622&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,645,520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,595,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;429,015&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,024,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;100,776,325&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,635,428&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,922)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;107,407,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;177,467,550&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,260,042&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(561,300)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;185,166,292&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unrealized losses on investments as of December&#160;31, 2021 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:60.256%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.827%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.829%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&#160;Unrealized&#160;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&#160;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less than one year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,244,053&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;94,417,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Greater than one year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;574,815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,875,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,818,868&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;101,292,353&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:7pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unrealized losses on investments as of December&#160;31, 2020 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:60.256%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.827%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.829%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&#160;Unrealized&#160;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&#160;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less than one year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;561,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,317,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Greater than one year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;561,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,317,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective January 1, 2020, the Company adopted Accounting Standards Update ("ASU") 2016-13, Financial Instruments - Credit Losses (Topic 326), &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Measurement of Credit Losses on Financial Instruments&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The guidance modifies the impairment model for available-for-sale debt securities and provides a simplified &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;accounting model for purchased financial assets with credit deterioration since their origination. The Company utilized the guidance provided by ASC 326 to determine whether any of the available-for-sale debt securities held by the Company were impaired. No investments were considered to be impaired during the years presented. The Company has the intention and current ability to hold its debt investments until the amortized cost basis has been recovered. If market, industry, and/or investee conditions deteriorate, the Company may incur future impairments. No investments were considered to be other-than-temporarily impaired in 2021 and 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fixed income securities as of December&#160;31, 2021, have contractual maturities as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:79.560%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.240%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Due within one year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,526,210&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Due between one and five years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;112,784,662&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Due over five years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;78,091,006&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;194,401,878&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s financial instruments consist of cash and cash equivalents, investments, accounts receivable, accounts payable, and short and long-term debt. The Company&#x2019;s estimate of the fair values of these financial instruments approximates their carrying amounts at December&#160;31, 2021 and 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories include material, direct labor and manufacturing overhead and are valued at the lower of first-in, first-out (FIFO) cost or net realizable value. Inventories consisted of the following as of December&#160;31, 2021 and 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.934%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.830%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.148%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;235,014,277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;151,688,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Work-in-process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,032,164&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,791,675&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,221,001&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,811,713&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Inventory&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;316,267,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;226,291,843&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Estimated inventory allowances for slow-moving and obsolete inventories are based on current assessments of future demands, market conditions, evaluation of longer lead times for certain electronic components and related management initiatives. If market conditions or customer requirements change and are less favorable than those projected by management, inventory allowances are adjusted accordingly.  Allowances for slow-moving and obsolete inventories (which are included, net, in the above inventory values) were $10.9 million and $10.4 million at December&#160;31, 2021 and 2020, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Plant and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Plant and equipment is stated at cost. Depreciation and amortization are computed for financial reporting purposes using the straight-line method, with estimated useful lives of 7 to 30 years for buildings and improvements, and 3 to 10 years for machinery and equipment. Depreciation expense was approximately $76.8 million, $82.4 million and $82.3 million in 2021, 2020 and 2019, respectively. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December 31, 2021, 2020 and 2019, capital expenditures recorded in accounts payable totaled $9.8&#160;million, $4.8&#160;million and $3.8&#160;million, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Impairment or Disposal of Long-Lived Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company reviews long-lived assets, including property, plant and equipment and other intangible assets with definite lives, for impairment whenever events or changes in circumstances indicate that the asset&#x2019;s carrying amount may not be recoverable. The Company conducts its long-lived asset impairment analysis in accordance with ASC 360-10-15, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Impairment or Disposal of Long-Lived Assets&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. ASC 360-10-15 &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;requires the Company to group assets and liabilities at the lowest level for which identifiable cash flows are largely independent of the cash flows of other assets and liabilities and evaluate the asset group against the sum of the undiscounted future cash flows. If the undiscounted cash flows do not indicate the carrying amount of the asset is recoverable, an impairment charge is measured as the amount by which the carrying amount of the asset group exceeds its fair value based on discounted cash flow analysis or appraisals.&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Patents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s policy is to capitalize costs incurred to obtain patents. The cost of patents is amortized over their useful lives. The cost of patents in process is not amortized until issuance.  The Company periodically obtains intellectual property rights, in the ordinary course of business, and the cost of the rights are amortized over their useful lives.   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Goodwill and Intangible Assets&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill reflects the cost of an acquisition in excess of the fair values assigned to identifiable net assets acquired. The Company reviews goodwill for impairment during the fourth quarter on an annual basis or more frequently if events or changes in circumstances indicate that goodwill might be impaired. The Company performs an impairment review for its automotive reporting unit, which has been determined to be one of the Company&#x2019;s reportable segments, using either a qualitative approach or quantitative approach which utilizes a fair value method that incorporates certain assumptions and judgments. The fair value of a reporting unit refers to the price that would be received to sell the unit as a whole in an orderly transaction between market participants at the measurement date. The Company performs a qualitative assessment (step 0) to determine whether it is more likely than not that a reporting unit's fair value is less than its carrying amount.  If not, no further goodwill impairment testing is performed. If so, the Company performs a step 1 test to determine the fair value of the reporting unit using an income approach to estimate the fair value of each of its reporting units and a market valuation approach to further support this analysis. If the fair value of the reporting unit is greater than its carrying amount, goodwill is not considered to be impaired. However, if the fair value of the reporting unit is less than its carrying amount, an impairment change is recorded as the excess of the reporting unit's carrying value over its fair value.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The assumptions included in the impairment tests require judgment and changes to these inputs could impact the results of the calculations which could result in an impairment charge in future periods if the carrying amount of the reporting unit exceeds its calculated fair value. For the qualitative assessment performed, management considers factors such as macro-economic conditions, industry and market considerations, overall financial performance, and other company-specific events, amongst other factors, in making the determination as to whether it is more likely than not that a reporting unit's fair value is less than its carrying amount. Other than management's internal projections of future cash flows, the primary assumptions used in the step 1 impairment test is the weighted-average cost of capital and long-term growth rates. Although the Company's cash flow forecasts are based on assumptions that are considered reasonable by management and consistent with the plans and estimates management is using to operate the underlying business, there are significant judgments in determining the expected future cash flows attributable to a reporting unit. There have been no impairment charges recorded currently or in prior periods in which goodwill existed.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Indefinite lived intangible assets are also subject to annual impairment testing or more frequently if indicators of impairment are identified. Management's judgment and assumptions are required in determining the underlying fair value of the indefinite lived intangible assets. While the Company believes the judgments and assumptions used in determining fair value are reasonable, different assumptions could change the estimated fair values and, therefore, impairment charges could be required, which could be material to the consolidated financial statements. The indefinite lived intangible assets were not impaired as a result of the annual test prepared by management for either period presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As part of recent acquisitions, the Company acquired Indefinite lived in-process research and development ("IPR&amp;amp;D") intangible assets. These IPR&amp;amp;D assets are not amortized, but are tested for impairment annually, or more frequently when indicators of potential impairment exist, until the completion or abandonment of the &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;associated research and development efforts. Upon completion of the projects, the assets will be amortized over the expected economic life of the asset, which will be determined on that date. Should the project be determined to be abandoned, and if the asset developed has no alternative use, the full value of the asset will be charged to expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Refer to &lt;/span&gt;&lt;span style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;&lt;a href="#i1049a5e71331417da758f2299126f8c9_163" style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Note 10, "Goodwill and Intangible Assets"&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; for information regarding the impairment testing performed in calendar year 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Revenue from Contracts with Customers&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. Accordingly, revenue is recognized in an amount that reflects the consideration to which the Company expects to be entitled in exchange for promised goods or services when it transfers those goods or services to customers.  Sales are shown net of returns, which have not historically been significant. The Company does not generate sales from arrangements with multiple deliverables. The Company generally receives purchase orders from customers on an annual basis.  Typically, such purchase order provide the annual terms, including pricing, related to a particular vehicle model. Purchase orders generally do not specify quantities. The Company recognizes revenue based on the pricing terms included in our annual purchase orders.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As part of certain agreements, entered into in the ordinary course of business, the Company is asked to provide customers with annual price reductions. Such amounts are subject to estimate and are accrued as a reduction of revenue as products are shipped to those customers. For any shipments of product that may be subject to retroactive price adjustments that are then being negotiated, the Company records revenue based on the Company&#x2019;s best estimate of the amount of consideration to which the entity will be entitled in exchange for transferring the promised goods to the customer. The Company's best estimate requires significant judgment based on historical results and expected outcomes of ongoing negotiations with customers. The Company's approach is to consider these adjustments to the contract price as variable consideration which is estimated based on the then most likely price amount. In addition, the Company has ongoing adjustments to our pricing arrangements with customers based on the related content, the cost of our products and other commercial factors. Such pricing accruals are adjusted as they are settled with our customers. Refer to &lt;/span&gt;&lt;span style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;&lt;a href="#i1049a5e71331417da758f2299126f8c9_166" style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Note 11, "Revenue"&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, for further information.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Advertising and Promotional Materials&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;All advertising and promotional costs are expensed as incurred and amounted to approximately $1.8 million, $2.0 million and $3.0 million, in 2021, 2020 and 2019, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Repairs and Maintenance&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Major renewals and improvements of property and equipment are capitalized, and repairs and maintenance are expensed as incurred. The Company incurred expenses relating to the repair and maintenance of plant and equipment of approximately $24.2 million, $22.6 million and $28.9 million, in 2021, 2020 and 2019, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Self-Insurance&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is self-insured for a portion of its risk on workers&#x2019; compensation and employee medical costs. The arrangements provide for stop loss insurance to manage the Company&#x2019;s risk. Such costs are accrued based on known claims and an estimate of incurred, but not reported (IBNR) claims. IBNR claims are estimated using historical lag information and other data provided by claims administrators. This estimation process is subjective, and to the extent that future results differ from original estimates, adjustments to recorded accruals may be necessary.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Product Warranty&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company periodically incurs product warranty costs. Any liabilities associated with product warranty are estimated based on known facts and circumstances and are not significant at December&#160;31, 2021, 2020 and 2019. The Company does not offer extended warranties on its products.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The provision for income taxes is based on the earnings reported in the consolidated financial statements. Deferred income tax assets and liabilities are computed for differences between the financial statement and tax basis of assets and liabilities that will result in deductible or taxable amounts in the future. Such deferred income tax asset and liability computations are based on enacted tax laws and rates. The Company applies the provisions of ASC 740, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, as it relates to uncertainty in income taxes recognized in the Company&#x2019;s consolidated financial statements. A threshold of more likely than not to be sustained upon examination is applied to uncertain tax positions. The Company deems the estimates related to this provision to be reasonable, however, no assurance can be given that the final outcome of these matters will not vary from what is reflected in the historical income tax provisions and accruals.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has operating leases for corporate offices, warehouses, vehicles, and other equipment, which are included within "Plant and Equipment" section of the Consolidated Balance Sheets. The leases have remaining lease terms of 1 year to 5 years. The weighted average remaining lease term for operating leases as of December 31, 2021 was 2 years, with a weighted average discount rate of 1.5%. Future minimum lease payments for operating leases as of December 31, 2021 were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.842%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.340%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:26.460%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,352,855&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;872,772&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;166,652&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,408&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total future minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,400,144&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(17,638)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,382,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Earnings Per Share&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has unvested share-based payment awards with a right to receive non-forfeitable dividends, which are considered participating securities under ASC 260, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Earnings Per Share&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The Company allocates earnings to participating securities and computes earnings per share using the two-class method. Under the two-class method, net income per share is computed by dividing net income allocated to common shareholders by the weighted average number of common shares outstanding for the period. In applying the two-class method, net income is allocated to both common shares and participating securities based on their respective weighted average shares outstanding for the period. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth the computation of basic and diluted net income per common share under the two-class method for each of the last three years:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:54.088%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.837%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.837%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.838%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Basic Earnings Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Income&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;360,797,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;347,563,621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;424,683,939&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Allocated to participating securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,591,992&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,964,928&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,028,813&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Income available to common shareholders&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;355,205,240&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;342,598,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;419,655,126&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Basic weighted average shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;235,526,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;242,599,923&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;251,766,382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Income per share - Basic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.51&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.67&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Diluted Earnings Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allocation of Net Income used in basic computation&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;355,205,240&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;342,598,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;419,655,126&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reallocation of undistributed earnings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,014&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,104&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Income available to common shareholders &#x2014; Diluted&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;355,222,254&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;342,612,925&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;419,676,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Number of shares used in basic computation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;235,526,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;242,599,923&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;251,766,382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additional weighted average dilutive common stock equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,077,103&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,082,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,506,608&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Diluted weighted average shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;236,604,014&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;243,681,992&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;253,272,990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net income per share &#x2014; Diluted&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.50&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the years ended December&#160;31, 2021, 2020 and 2019,&lt;/span&gt;&lt;span style="color:#faac16;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;200,037 shares, 403,071 shares, and 247,855 shares, respectively, related to stock option plans were not included in diluted average common shares outstanding because they were anti-dilutive.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Comprehensive Income (Loss)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Comprehensive income (loss) reflects the change in equity of a business enterprise during a period from transactions and other events and circumstances from non-owner sources. For the Company, comprehensive income represents net income adjusted for unrealized gains and losses on certain investments and foreign currency translation adjustments that are further detailed in &lt;/span&gt;&lt;span style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;&lt;a href="#i1049a5e71331417da758f2299126f8c9_160" style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Note 9&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; to the Consolidated Financial Statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The financial position and results of operations of the Company&#x2019;s foreign subsidiaries are measured using the local currency as the functional currency. Assets and liabilities are translated at the exchange rate in effect at year-end. Income statement accounts are translated at the average rate of exchange in effect during the year. The resulting translation adjustment is recorded as a separate component of shareholders&#x2019; investment. Gains and losses arising from re-measuring foreign currency transactions into the appropriate currency are included in the determination of net income.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock-Based Compensation Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company accounts for stock-based compensation using the fair value recognition provisions of ASC 718, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Compensation - Stock Compensation&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. As described more fully in &lt;/span&gt;&lt;span style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;&lt;a href="#i1049a5e71331417da758f2299126f8c9_148" style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Note 5 to the Consolidated Financial Statements,&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; the Company provides, or has provided, compensation benefits under an omnibus incentive plan, two other stock option plans, another restricted stock plan, and an employee stock purchase plan.  The Company utilizes the Black-Scholes model to estimate the value of the stock options, which requires the input of assumptions. These assumptions include estimating (a)&#160;the length of time employees will retain their vested stock options before exercising them (&#x201c;expected term&#x201d;), (b)&#160;the volatility of the Company&#x2019;s common stock price over the expected term, (c)&#160;the number of options that will ultimately not complete their vesting requirements (&#x201c;forfeitures&#x201d;) and (d)&#160;expected dividends. Changes in the assumptions can materially &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;affect the estimate of fair value of stock-based compensation and consequently, the related amounts recognized on the consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.&lt;/span&gt;&lt;/div&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MjQz_b50b37af-6ec3-461b-bf23-f4dd6051eaab">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements include the accounts of Gentex Corporation and all of its wholly-owned subsidiaries. All intercompany accounts and transactions have been eliminated.&lt;/span&gt;&lt;/div&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDY0_fe41f0e1-bdaf-4617-9196-80a0ac0bad23">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash equivalents consist of funds invested in bank accounts and money market funds that have daily liquidity.&lt;/span&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <gntx:AllowanceForDoubtfulAccountsPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MTQy_4bd93e6c-f8d1-46a7-a8e0-8e61f6063c8f">Allowance For Doubtful AccountsThe Company reviews a monthly aging report of all accounts receivable balances starting with invoices outstanding over sixty days. In addition, the Company monitors information about its customers through a variety of sources including the media, and information obtained through on-going interaction between Company personnel and the customer. Based on the evaluation of the above information, the Company estimates its allowances related to customer receivables on historical credit and collections experience, customers current financial condition and the specific identification of other potential problems, including the economic climate and impact the COVID-19 pandemic and supply chain constraints has had on specific customers. Actual collections can differ, requiring adjustments to the allowances, but historically such adjustments have not been materialThe Company&#x2019;s allowance for doubtful accounts primarily relates to financially distressed automotive customers. The Company continues to work with these financially distressed customers in collecting past due balances.</gntx:AllowanceForDoubtfulAccountsPolicyTextBlock>
    <gntx:ScheduleOfAllowanceForDoubtfulAccountsTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDIx_de0c06e6-077e-48c5-b324-d44d107aa863">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the activity in the Company&#x2019;s allowance for doubtful accounts:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:35.220%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.937%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.635%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.937%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.057%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.942%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Beginning&lt;br/&gt;Balance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net&lt;br/&gt;Additions/&lt;br/&gt;(Reductions)&lt;br/&gt;to Costs and&lt;br/&gt;Expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net Additions/Deductions&lt;br/&gt;and Other&lt;br/&gt;Adjustments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Ending&lt;br/&gt;Balance&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December&#160;31, 2021:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allowance for Doubtful Accounts&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,464,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(288,542)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,176,205&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December&#160;31, 2020:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allowance for Doubtful Accounts&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,451,293&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,454&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,464,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December&#160;31, 2019:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allowance for Doubtful Accounts&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,746,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(295,354)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,451,293&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</gntx:ScheduleOfAllowanceForDoubtfulAccountsTableTextBlock>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i8d8e1da6f5ca41e28b82b19d037fdbdc_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzItMS0xLTEtMjUwNTE_347e34c9-d0d7-4a8f-a1f2-d284704e15c0"
      unitRef="usd">3464747</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="if2cf33740b7645fc8fe9caf0abd05709_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzItMy0xLTEtMjUwNTE_e83a3c86-8f73-48e0-82df-b2ac28f27cb1"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="if2cf33740b7645fc8fe9caf0abd05709_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzItNS0xLTEtMjUwNTE_dbd93dda-2d8a-4b17-8db8-2488e17ae973"
      unitRef="usd">-288542</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i562b4304926c4cceb0e7fdd00288b9a6_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzItNy0xLTEtMjUwNTE_2526af3f-b909-4895-9bdf-fe6203aad3b2"
      unitRef="usd">3176205</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i2664f681e8a34507b50d1ef016d2b22b_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzQtMS0xLTEtMjUwNTE_88ba0462-3dcf-4755-85a9-3335f72f47f1"
      unitRef="usd">2451293</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="i58b6f6d4aecd4f22b338b6e5bc3558aa_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzQtMy0xLTEtMjUwNTE_6f1460f3-7fa5-4f4e-8223-e016be069274"
      unitRef="usd">1000000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="i58b6f6d4aecd4f22b338b6e5bc3558aa_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzQtNS0xLTEtMjUwNTE_7f512e4b-a971-47df-9ac5-e86b0ce60ff8"
      unitRef="usd">13454</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i8d8e1da6f5ca41e28b82b19d037fdbdc_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzQtNy0xLTEtMjUwNTE_8862efe2-f79e-46fb-ab04-a11c4801a205"
      unitRef="usd">3464747</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="ic6ad84e49b7343f0972d1138bcfcc159_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzYtMS0xLTEtMjUwNTE_e2771c90-a860-4d72-9b1f-4996c61423d2"
      unitRef="usd">2746647</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="i30428947748a4d7bb58b42beb98bc4ed_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzYtMy0xLTEtMjUwNTE_da512ed5-cb6b-47ca-988e-f079ff3a0f21"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="i30428947748a4d7bb58b42beb98bc4ed_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzYtNS0xLTEtMjUwNTE_b4f45320-bd12-434c-aeb5-002844e56358"
      unitRef="usd">-295354</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i2664f681e8a34507b50d1ef016d2b22b_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpiZWE0YWI3NzhkZWI0OGUwYmI3ZDkwNzhiMzQ1MTgzNy90YWJsZXJhbmdlOmJlYTRhYjc3OGRlYjQ4ZTBiYjdkOTA3OGIzNDUxODM3XzYtNy0xLTEtMjUwNTE_5d11ee17-18ac-4cf4-b5a0-7caee8ce903b"
      unitRef="usd">2451293</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:InvestmentPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MjE3_11361fe8-647b-44e0-b126-3d2bf1779a22">&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company follows the provisions of ASC 820, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Fair Value Measurements and Disclosures,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; for its financial assets and liabilities, and for its non-financial assets and liabilities subject to fair value measurements. ASC 820 provides a framework for measuring the fair value of assets and liabilities. This framework is intended to provide increased consistency in how fair value determinations are made under various existing accounting standards that permit, or in some cases, require estimates of fair-market value. This standard also expanded financial statement disclosure requirements about a company&#x2019;s use of fair-value measurements, including the effect of such measurement on earnings.  The cost of securities sold is based on the specific identification method.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company determines the fair value of its government securities, asset-backed securities, corporate bonds, and certain municipal bonds by utilizing monthly valuation statements that are provided by its broker. The broker determines the investment valuation by utilizing the bid price in the market and also refers to third party sources to validate valuations, and as such are classified as Level 2 assets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's certificates of deposit are classified as available for sale, and are considered as Level 1 assets.  These investments are carried at amortized cost, which approximates fair value.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company will also periodically make technology investments in certain non-consolidated third-parties. These equity investments are accounted for in accordance with ASC 321, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Investments - Equity Securities&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. Equity investments that do not have readily determinable fair values, and where the Company has not identified any observable events that would cause adjustment of the valuation to date, are held at cost.  These technology investments totaled $16.8 million and $4.0 million as of December 31, 2021 and December 31, 2020, respectively. These investments are classified within Long-Term Investments in the consolidated balance sheet and are not included within the tables below.  The $12.8&#160;million increase in the balance of these technology investments are a result of additional investments with third-parties for potential automotive and medical devices use-cases.&lt;/span&gt;&lt;/div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective January 1, 2020, the Company adopted Accounting Standards Update ("ASU") 2016-13, Financial Instruments - Credit Losses (Topic 326), &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Measurement of Credit Losses on Financial Instruments&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The guidance modifies the impairment model for available-for-sale debt securities and provides a simplified &lt;/span&gt;accounting model for purchased financial assets with credit deterioration since their origination. The Company utilized the guidance provided by ASC 326 to determine whether any of the available-for-sale debt securities held by the Company were impaired. No investments were considered to be impaired during the years presented. The Company has the intention and current ability to hold its debt investments until the amortized cost basis has been recovered. If market, industry, and/or investee conditions deteriorate, the Company may incur future impairments.</us-gaap:InvestmentPolicyTextBlock>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzQ1NzA_b13c728b-b33e-49a1-adc3-3b00d34cdd13"
      unitRef="usd">16800000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzQ1Nzc_9d589036-8a6b-4fa5-a6d9-66c7b5fecd01"
      unitRef="usd">4000000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <gntx:EquitySecuritiesWithoutReadilyDeterminableFairValueAcquisitionAdjustmentAnnualAmount
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzQ3ODg_ea6f0504-d32c-43a1-9555-5e06d244c957"
      unitRef="usd">12800000</gntx:EquitySecuritiesWithoutReadilyDeterminableFairValueAcquisitionAdjustmentAnnualAmount>
    <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDc1_b435c939-82ec-4016-8ed6-37ef3dc52b1b">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Assets or liabilities that have recurring fair value measurements are shown below as of December&#160;31, 2021 and December&#160;31, 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:23.509%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.345%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.400%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.904%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.400%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.904%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.400%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.024%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.904%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.910%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value Measurements at Reporting Date Using&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total as of&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Quoted&#160;Prices&#160;in&lt;br/&gt;Active Markets&lt;br/&gt;for Identical&lt;br/&gt;Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&#160;Other&lt;br/&gt;Observable&lt;br/&gt;Inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&lt;br/&gt;Unobservable&lt;br/&gt;Inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Description&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level I)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level 2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level 3)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash&#160;&amp;amp; Cash Equivalents&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;262,311,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;262,311,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,507,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,507,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,018,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,018,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,897,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,897,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,799,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,799,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,056,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,056,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,354,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,354,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Government Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,944,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,944,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;74,720,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;74,720,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;458,610,950&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;267,773,552&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;190,837,398&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:31.549%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.934%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.146%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.303%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value Measurements at Reporting Date Using&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total as of&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Quoted&#160;Prices&#160;in&lt;br/&gt;Active Markets&lt;br/&gt;for Identical&lt;br/&gt;Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&#160;Other&lt;br/&gt;Observable&lt;br/&gt;Inputs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&lt;br/&gt;Unobservable&lt;br/&gt;Inputs&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Description&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level I)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level 2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;(Level 3)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash&#160;&amp;amp; Cash Equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;423,371,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;423,371,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,516,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,516,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,155,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,155,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Government Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,678,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,678,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,284,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,284,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,528,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,528,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,924,537&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,924,537&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,645,520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,645,520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,024,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,024,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;107,407,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;107,407,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;608,537,328&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;430,062,110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;178,475,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzMtMS0xLTEtMjUwNTE_7de767fb-86e3-440a-91e8-195c02a6419c"
      unitRef="usd">262311670</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i18ace7cebdb3455c8641886adb72a261_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzMtMy0xLTEtMjUwNTE_000c35a6-7e6d-43b9-8a02-d9a1fd4c049b"
      unitRef="usd">262311670</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i1fc20d413a8e4200ae6ceb53ccd3c32f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzMtNS0xLTEtMjUwNTE_e9e2cf87-2b2c-4629-abcc-7575ec790173"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i67aee0b257264715bab94a6d76be9cf1_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzMtNy0xLTEtMjUwNTE_941bd61b-93ec-4368-be0c-666826e10ffe"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i7670dfe188d242f0837393b05bbf3c74_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzUtMS0xLTEtMjUwNTE_50b37e7b-24c4-48f8-9a23-a37b6280f4ff"
      unitRef="usd">1507770</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="if435b94a6cb6419fbeddeb0a79e8a0e3_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzUtMy0xLTEtMjUwNTE_8b7bf0c0-9bc7-48ca-89a9-01d13e55b045"
      unitRef="usd">1507770</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i5d0175a0a2ec4701a01e845159b10276_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzUtNS0xLTEtMjUwNTE_b9f7141c-58bb-45de-b85d-e13577596679"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i06c4126238144effb4a2efe9d72ced99_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzUtNy0xLTEtMjUwNTE_ba9174ac-820d-4451-bcf0-2159c93164cb"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ic45c006ac0d4430d995bfe9c045140ca_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzYtMS0xLTEtMjUwNTE_2c144b5d-5df3-4ed4-8c91-64b07e2471a9"
      unitRef="usd">2018440</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ifc0334febbb54585abbf2a941926204c_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzYtMy0xLTEtMjUwNTE_c67805ff-e993-492a-ac7c-440fb2bd189f"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ic9648ea877db41b3ab71efba6e988409_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzYtNS0xLTEtMjUwNTE_ab3ed76d-1cb7-4bb2-8bff-aa3aba17b4c7"
      unitRef="usd">2018440</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i1c30add963c6482b836e28f8fc0b89c2_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzYtNy0xLTEtMjUwNTE_51a32700-5796-4c59-a011-544db242e19d"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="id8c5f2159ecb4d4297d7ef9cd45a74e0_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzktMS0xLTEtMjUwNTE_169f11e8-9f31-41b1-ade2-3e982650dce4"
      unitRef="usd">1897402</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ie4cb0268c81945d1abe7caea1ab9031d_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzktMy0xLTEtMjUwNTE_09bd7b82-f082-47ce-89bb-07770163edac"
      unitRef="usd">1897402</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i043b16435e6a4449bea62328bacfd106_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzktNS0xLTEtMjUwNTE_a20d301c-ebe3-4779-9682-7a42a315bcd0"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i6643108a2fca45f79f4fd328f8c5e3c0_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzktNy0xLTEtMjUwNTE_9734fd8e-728a-4867-a4d7-a8aa9e3dae7a"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i2e09ca2e7bb945d28352e41bb1096b25_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzExLTEtMS0xLTI1MDUx_8739ae63-c7da-4f99-9267-cb21d3542940"
      unitRef="usd">25799513</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ibf1609681dd843a8a5062ad07a989221_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzExLTMtMS0xLTI1MDUx_2caca025-d439-4a5d-8a12-1c0fc3242e1d"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i4cfe34c8ec1e4aca976d850ba9272855_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzExLTUtMS0xLTI1MDUx_dab321e6-781f-43dd-8fbc-4a2192fa55eb"
      unitRef="usd">25799513</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i642f30ed95d94b92bd484aa93d941569_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzExLTctMS0xLTI1MDUx_0e3b5bee-bd40-45b9-ab41-e98e3b0542bb"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i83d644759352410a8d8fe814c7e6f174_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzEyLTEtMS0xLTI1MDUx_c9c9b7aa-677f-4dcb-b4a3-a388dcd93b7d"
      unitRef="usd">2056710</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i81aed82560c64a00bf73768f2b06c6e2_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzEyLTMtMS0xLTI1MDUx_c4dad979-20c5-4487-ba86-aae04f5b77a8"
      unitRef="usd">2056710</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ib77fc239a9954eb98c89f3d6d97312e0_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzEyLTUtMS0xLTI1MDUx_a9c78c30-de2e-443e-99f0-e8d80a140a84"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i87851860cd77424e86bb07ffad83bc48_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzEyLTctMS0xLTI1MDUx_f72e7c0e-2d74-411d-a252-c3a26f816b9c"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="if249bf5daf2649e5bbca39e9e673a646_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzEzLTEtMS0xLTI1MDUx_8b99c309-885a-4d92-b68b-964e420f98b9"
      unitRef="usd">40354929</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i91e252f5d79443c1bfbdac79efde3a37_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzEzLTMtMS0xLTI1MDUx_f6557128-8e4c-4cd9-86e0-cd87a64bcc29"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i6aa6292b7eac4d65a0fdb1f78ceef6a3_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzEzLTUtMS0xLTI1MDUx_02074617-758c-42d8-a9df-53ee6a2787b3"
      unitRef="usd">40354929</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i84f70bb1584343eca703a5f013df0fe8_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzEzLTctMS0xLTI1MDUx_5f9f28f4-c5f2-4441-b865-aff8e97cf245"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i69bb7cbd9bf24b51a0040c758ae40aaf_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE0LTEtMS0xLTI1MDUx_a8387f11-70bb-4e50-8730-8d5912518f8a"
      unitRef="usd">47944036</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ie71f9abdfb12430ea3a475409e0f8e7b_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE0LTMtMS0xLTI1MDUx_04492b5c-08bd-4f8a-b607-6e3d9b1ec6a5"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="id6dd6ade8afd49dab9e3ec3eb510c2e2_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE0LTUtMS0xLTI1MDUx_ea8d5016-dee0-428d-b2cf-0923cc3cce14"
      unitRef="usd">47944036</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ia7d171f3bb01493383a3156980df5569_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE0LTctMS0xLTI1MDUx_c0ab5aaf-e65a-4988-a15c-e19cc05b5298"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ia3062321c0004977a498867f6f1903c2_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE2LTEtMS0xLTI1MDUx_f498f00b-c4fc-45d8-baa0-99dbab4ed2eb"
      unitRef="usd">74720480</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i88fcbf0d2efb424da7b0fb8d709e7d11_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE2LTMtMS0xLTI1MDUx_5aaae47f-f67d-4b6b-b68e-a39d48e74031"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i76040d3704714ac99d9cb80fe94bda28_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE2LTUtMS0xLTI1MDUx_bf621aaf-a967-44a0-a0d6-8c825adb3832"
      unitRef="usd">74720480</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i6d8e26cafd1842ae934ccd6c3545c9b1_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE2LTctMS0xLTI1MDUx_f908a406-a4b9-4222-b8b4-eb4928704533"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsAndCash
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE3LTEtMS0xLTI1MDUx_d7e220fa-6570-46b1-9f4b-e316e80ad115"
      unitRef="usd">458610950</us-gaap:InvestmentsAndCash>
    <us-gaap:InvestmentsAndCash
      contextRef="i18ace7cebdb3455c8641886adb72a261_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE3LTMtMS0xLTI1MDUx_508a5f64-edda-46fc-8b74-11d0c99818f3"
      unitRef="usd">267773552</us-gaap:InvestmentsAndCash>
    <us-gaap:InvestmentsAndCash
      contextRef="i1fc20d413a8e4200ae6ceb53ccd3c32f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE3LTUtMS0xLTI1MDUx_96e3daaf-da16-4b21-b47d-29730c81204d"
      unitRef="usd">190837398</us-gaap:InvestmentsAndCash>
    <us-gaap:InvestmentsAndCash
      contextRef="i67aee0b257264715bab94a6d76be9cf1_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTplNTU4ODYxOTViYjg0YjkzOGMxYzMzMWFjMjg1N2E5YS90YWJsZXJhbmdlOmU1NTg4NjE5NWJiODRiOTM4YzFjMzMxYWMyODU3YTlhXzE3LTctMS0xLTI1MDUx_16dde164-c2ba-4035-a1ee-5f407f42b82b"
      unitRef="usd">0</us-gaap:InvestmentsAndCash>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzMtMS0xLTEtMjUwNTE_f678ee00-829f-4c6a-ab66-b79d8cbb3bcb"
      unitRef="usd">423371036</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ib048d2997e694992b1e8afb581be2a54_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzMtMy0xLTEtMjUwNTE_a1337100-d422-4227-88f4-0418adb4e3da"
      unitRef="usd">423371036</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i98a42d8960b847b7b8a1a41939b9ed57_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzMtNS0xLTEtMjUwNTE_b26dae12-9c81-42f0-b16e-7fcb7606908e"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ic4d9d27cbfdd435faa885a96de3394ef_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzMtNy0xLTEtMjUwNTE_9c7f1926-bf8c-44c8-a9ef-c532cd41be87"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i1bbb482cae6741259292340eda12cf76_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzUtMS0xLTEtMjUwNTE_23d63284-5ca8-4e86-8bf6-ff32f0dca8c6"
      unitRef="usd">1516693</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i13f05e86b01b4de1b912394306c71c29_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzUtMy0xLTEtMjUwNTE_3511cbec-decd-409b-b8ca-1447367d8629"
      unitRef="usd">1516693</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ie2739925489c467b9bcd502c7b5f0b6f_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzUtNS0xLTEtMjUwNTE_b2f53590-2df7-48db-88ca-20b4dae54cc5"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ib96b91a18df246c290bac145986ffea4_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzUtNy0xLTEtMjUwNTE_e2bb26f9-1a91-4522-8460-27905d5a5979"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="icb122e3619ab40b9a8c6de279cfb5f43_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzYtMS0xLTEtMjUwNTE_f371301a-9b0d-4ee1-aacb-081e97a78999"
      unitRef="usd">7155600</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ie61ed359d5214e519689b2cd92057150_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzYtMy0xLTEtMjUwNTE_97888fa1-9f53-4f9d-86e8-6ac2d8c50f96"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i31ab3e6452fe4f25bad719d4c728d8a5_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzYtNS0xLTEtMjUwNTE_8133a3ea-f587-43e1-859c-684630b34123"
      unitRef="usd">7155600</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i2d7b4279729a41898d28bd524b96f352_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzYtNy0xLTEtMjUwNTE_e6bf16fb-f3bc-4e8f-b4ca-1f979fe65499"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ib10b217c871547ac8a18c365d90f83c0_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzctMS0xLTEtMjUwNTE_f139269e-b1ca-4149-9b18-feac91884014"
      unitRef="usd">6678450</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i060334269adf4ec982624dfd2355a765_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzctMy0xLTEtMjUwNTE_4cde6784-a9ff-41f5-80fd-6c27ee154bfc"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i648dfb99995f4bf5bab276cdaca9b4f3_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzctNS0xLTEtMjUwNTE_f678c33d-b2cd-4c96-bdfa-8565aacb57be"
      unitRef="usd">6678450</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="if187acd990604fa79c426195e96e6005_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzctNy0xLTEtMjUwNTE_27f48f07-9171-45c1-b138-58fb853dc98b"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i3c92cf5eb8624faf8e91ea0427464b83_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzgtMS0xLTEtMjUwNTE_e334611c-2103-414d-bf5d-d1ae534669a9"
      unitRef="usd">10284765</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ia759231c35b24a3d94a3121e48f91460_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzgtMy0xLTEtMjc2MjQ_8556a77f-28b5-44a9-8388-1c4b2c2006b9"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ia4da7f9e2a95462e929cb7b4e618728d_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzgtNS0xLTEtMjc2Mjk_97a96a5d-88d4-4d88-a3d1-2fdb3928a586"
      unitRef="usd">10284765</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i9a5977b803ce461fb450e581a33af94f_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzgtNy0xLTEtMjUwNTE_5f52e49c-6b6c-48e3-b218-4a2b70690012"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="id3ac6a96f62d4f7fadb8ea1bba78e5b8_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzktMS0xLTEtMjUwNTE_5e346e43-6b81-4f06-abf0-90a9f1a20ebd"
      unitRef="usd">1528861</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i69815041944e4db688d47fdb082071da_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzktMy0xLTEtMjUwNTE_00b43837-43ba-4563-8b4d-795c3d247651"
      unitRef="usd">1528861</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ifb6aeefa6d694f4da8f99ec8963139f4_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzktNS0xLTEtMjUwNTE_b42c1b03-8598-4687-bfb2-7580535dc2e7"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i9bf3b2a3b83945189d836b22017bae6c_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzktNy0xLTEtMjUwNTE_bcca0351-bca1-4d63-923d-08c32975a604"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="id8ff5af5dd654d78ae82381b4ff5c091_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzExLTEtMS0xLTI1MDUx_22e56257-8574-49da-9fc0-938a02a39ada"
      unitRef="usd">37924537</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ia8f3b2ff0d314b83bd21e28ddf73579a_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzExLTMtMS0xLTI1MDUx_d545ce26-6062-4f2d-b485-a87821b5c709"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="idd0dcfb8397941afbc7d94bbb6e5bca2_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzExLTUtMS0xLTI1MDUx_89308bce-250f-49a2-a3fb-f63fb79b2ac1"
      unitRef="usd">37924537</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i1d303ab1bee94ed895e2aebafaffbd60_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzExLTctMS0xLTI1MDUx_6a05a5a7-0083-428f-bd4f-b82307e554ce"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ia0a1d56ef3df4db4b5b9e3ff7471217e_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzEyLTEtMS0xLTI1MDUx_99bcfa85-d8ef-4232-b923-d16e3b85355b"
      unitRef="usd">3645520</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i2aae567b886f48f391dce88b5e000a37_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzEyLTMtMS0xLTI1MDUx_71f35346-8b52-4a86-ab9c-d2358c4faaef"
      unitRef="usd">3645520</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i8aa444456f4e49f18949ac5093d6d236_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzEyLTUtMS0xLTI1MDUx_b85aadf4-7251-4e80-a7d5-7545ef37b3fa"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ia3ade44ae6944e9a9c405ba66abc9a18_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzEyLTctMS0xLTI1MDUx_693d59a8-6bcf-46ea-b930-20f8c71f654e"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i22bca552d5f648dc89d61df0099d79fe_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzEzLTEtMS0xLTI1MDUx_432af22b-f1b5-4b16-b78a-b38894a893cd"
      unitRef="usd">9024035</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i8f1aaed225034af1a21480bce9ffa840_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzEzLTMtMS0xLTI1MDUx_d371e9ee-4670-48c7-b176-2210869edd94"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ib577e667942b4f0fa3ade779900e989e_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzEzLTUtMS0xLTI1MDUx_ea5999a8-1f9c-47c1-ae99-e4cf28813d9c"
      unitRef="usd">9024035</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i15e4ea568d334c03a1f836953e30dbd3_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzEzLTctMS0xLTI1MDUx_b893724d-1bc8-4e2c-ba64-996c430e529f"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i36f58f659c0a461792970b3fbb8621ee_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzE1LTEtMS0xLTI1MDUx_366cb018-2987-4eba-a9f1-04b7bcf08a55"
      unitRef="usd">107407831</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="i4116a9db4b194906bccbf699401dce74_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzE1LTMtMS0xLTI1MDUx_2e16d47b-0d3d-47fa-911a-ca1b8d54ff7b"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="ia042e8e8000048feaa6050e88056e6be_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzE1LTUtMS0xLTI1MDUx_17b16bf7-19d9-4063-9453-eb0dada2af8b"
      unitRef="usd">107407831</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsFairValueDisclosure
      contextRef="iab6faf4da825442dbe3fc64b3b85e38f_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzE1LTctMS0xLTI1MDUx_36420749-e26f-46ff-b568-17615b05fb9d"
      unitRef="usd">0</us-gaap:InvestmentsFairValueDisclosure>
    <us-gaap:InvestmentsAndCash
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzE2LTEtMS0xLTI1MDUx_9879b4d1-af0e-44b9-b6eb-e60724d3738c"
      unitRef="usd">608537328</us-gaap:InvestmentsAndCash>
    <us-gaap:InvestmentsAndCash
      contextRef="ib048d2997e694992b1e8afb581be2a54_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzE2LTMtMS0xLTI1MDUx_9f79315c-c70c-440b-b549-08ac6104cfb2"
      unitRef="usd">430062110</us-gaap:InvestmentsAndCash>
    <us-gaap:InvestmentsAndCash
      contextRef="i98a42d8960b847b7b8a1a41939b9ed57_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzE2LTUtMS0xLTI1MDUx_bb6d2027-757e-4dfd-b2c9-4b3b2e32fa04"
      unitRef="usd">178475218</us-gaap:InvestmentsAndCash>
    <us-gaap:InvestmentsAndCash
      contextRef="ic4d9d27cbfdd435faa885a96de3394ef_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjMjI4MmRkMWExYTc0ZWNjYjM1Yjg3NWY4NDQ4NmVhNi90YWJsZXJhbmdlOmMyMjgyZGQxYTFhNzRlY2NiMzViODc1Zjg0NDg2ZWE2XzE2LTctMS0xLTI1MDUx_86cd818c-fcca-482b-81f3-994f4bc68a92"
      unitRef="usd">0</us-gaap:InvestmentsAndCash>
    <us-gaap:UnrealizedGainLossOnInvestmentsTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDg0_6d76d5b1-8846-43ae-aae1-526c1d3425b0">&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amortized cost, unrealized gains and losses, and market value of investment securities are shown as of December&#160;31, 2021 and 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.371%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:35.767%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.615%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.615%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.615%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Market Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,500,543&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,227&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,507,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,994,639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,801&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,018,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,897,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,897,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,352,630&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,771&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(587,888)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,799,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,001,714&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54,996&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,056,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,716,866&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;168,416&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(530,353)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,354,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Government Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;48,385,672&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,939&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(497,575)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,944,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;72,175,568&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,747,964&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(203,052)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;74,720,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;195,025,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,093,114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,818,868)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;196,299,280&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.528%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:35.076%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.960%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.329%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.221%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.545%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Market Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,502,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,516,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,084,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;70,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,155,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Governmental Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,635,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,318&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,678,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,160,376&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;124,389&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,284,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,528,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,528,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-Term Investments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,681,113&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;800,802&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(557,378)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,924,537&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Certificate of Deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,503,898&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;141,622&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,645,520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,595,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;429,015&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,024,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal Bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;100,776,325&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,635,428&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,922)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;107,407,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;177,467,550&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,260,042&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(561,300)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;185,166,292&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:UnrealizedGainLossOnInvestmentsTableTextBlock>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i7670dfe188d242f0837393b05bbf3c74_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzMtMS0xLTEtMjUwNTE_dfdb8990-5c9c-4392-ad80-4032514b1797"
      unitRef="usd">1500543</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i7670dfe188d242f0837393b05bbf3c74_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzMtMy0xLTEtMjUwNTE_5dfcaa2a-f465-47ee-ae3e-8302988492a8"
      unitRef="usd">7227</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i7670dfe188d242f0837393b05bbf3c74_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzMtNS0xLTEtMjUwNTE_7cfaca4f-08e6-4bf3-8ffe-9137f4b82168"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i7670dfe188d242f0837393b05bbf3c74_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzMtNy0xLTEtMjUwNTE_54c21556-a23b-4121-974a-f2f829d2021b"
      unitRef="usd">1507770</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="ic45c006ac0d4430d995bfe9c045140ca_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzQtMS0xLTEtMjUwNTE_51ee7064-33e1-4c2f-87b3-b3af4b98839a"
      unitRef="usd">1994639</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ic45c006ac0d4430d995bfe9c045140ca_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzQtMy0xLTEtMjUwNTE_2c1e82a4-04c8-4a37-b03c-93fb0b4636b7"
      unitRef="usd">23801</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ic45c006ac0d4430d995bfe9c045140ca_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzQtNS0xLTEtMjUwNTE_7d4092bd-6e2e-45a8-91f2-7b23655cd847"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ic45c006ac0d4430d995bfe9c045140ca_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzQtNy0xLTEtMjUwNTE_756dc82b-f755-427c-8309-e654beb3f22a"
      unitRef="usd">2018440</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="id8c5f2159ecb4d4297d7ef9cd45a74e0_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzctMS0xLTEtMjUwNTE_fa139bf5-3723-43c2-9cff-0b455c60b262"
      unitRef="usd">1897402</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="id8c5f2159ecb4d4297d7ef9cd45a74e0_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzctMy0xLTEtMjUwNTE_5619f3c6-c52a-4421-b073-0550a43d2e5e"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="id8c5f2159ecb4d4297d7ef9cd45a74e0_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzctNS0xLTEtMjUwNTE_855ac09c-adbe-431d-ac8d-e28decb82628"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="id8c5f2159ecb4d4297d7ef9cd45a74e0_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzctNy0xLTEtMjUwNTE_e03c442a-6dc6-43bd-9e23-ff43704402d6"
      unitRef="usd">1897402</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i2e09ca2e7bb945d28352e41bb1096b25_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzktMS0xLTEtMjUwNTE_6d910c31-5882-4757-88a6-7c59afbb9957"
      unitRef="usd">26352630</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i2e09ca2e7bb945d28352e41bb1096b25_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzktMy0xLTEtMjUwNTE_2db0bffa-3871-4c47-a6d1-3e0cf5a40bb7"
      unitRef="usd">34771</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i2e09ca2e7bb945d28352e41bb1096b25_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzktNS0xLTEtMjUwNTE_e797fbbf-c026-4e79-a4ed-667405576015"
      unitRef="usd">587888</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i2e09ca2e7bb945d28352e41bb1096b25_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzktNy0xLTEtMjUwNTE_847dbfe4-671d-4b4c-9140-c6f136ac1537"
      unitRef="usd">25799513</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i83d644759352410a8d8fe814c7e6f174_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEwLTEtMS0xLTI1MDUx_04b2ba31-c21c-45c8-8475-ea5af163f7f4"
      unitRef="usd">2001714</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i83d644759352410a8d8fe814c7e6f174_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEwLTMtMS0xLTI1MDUx_fcf5fa38-94e3-4125-adf6-f3d17be7e3de"
      unitRef="usd">54996</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i83d644759352410a8d8fe814c7e6f174_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEwLTUtMS0xLTI1MDUx_fe210695-5858-437d-b4e7-10cb0c451193"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i83d644759352410a8d8fe814c7e6f174_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEwLTctMS0xLTI1MDUx_a183604d-d397-4c7c-8e76-ef6c45656607"
      unitRef="usd">2056710</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="if249bf5daf2649e5bbca39e9e673a646_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzExLTEtMS0xLTI1MDUx_10cfe057-bbbd-494b-a384-d2448478ce49"
      unitRef="usd">40716866</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="if249bf5daf2649e5bbca39e9e673a646_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzExLTMtMS0xLTI1MDUx_ead30eb5-7b2f-4c75-bdfc-22df8027f002"
      unitRef="usd">168416</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="if249bf5daf2649e5bbca39e9e673a646_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzExLTUtMS0xLTI1MDUx_d8fc5776-0155-4223-a99d-12c41e30638d"
      unitRef="usd">530353</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="if249bf5daf2649e5bbca39e9e673a646_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzExLTctMS0xLTI1MDUx_c329b07f-93f8-4e69-b9ab-87fb85e20191"
      unitRef="usd">40354929</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i69bb7cbd9bf24b51a0040c758ae40aaf_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEyLTEtMS0xLTI1MDUx_a73c8379-f9de-433a-ac78-96b575275c1f"
      unitRef="usd">48385672</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i69bb7cbd9bf24b51a0040c758ae40aaf_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEyLTMtMS0xLTI1MDUx_933f5fe9-cb00-4f96-9b76-168435bf8c6c"
      unitRef="usd">55939</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i69bb7cbd9bf24b51a0040c758ae40aaf_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEyLTUtMS0xLTI1MDUx_3d3a49fe-0b02-42b8-bae9-3ed4980b72b2"
      unitRef="usd">497575</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i69bb7cbd9bf24b51a0040c758ae40aaf_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEyLTctMS0xLTI1MDUx_0ba5c61f-e058-4d83-9a1e-6ae05b2a526c"
      unitRef="usd">47944036</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="ia3062321c0004977a498867f6f1903c2_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEzLTEtMS0xLTI1MDUx_c52c5ee6-f543-4029-a189-7d82e1bf4a87"
      unitRef="usd">72175568</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ia3062321c0004977a498867f6f1903c2_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEzLTMtMS0xLTI1MDUx_63cfc03a-1d16-4900-aa65-2303191aa62d"
      unitRef="usd">2747964</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ia3062321c0004977a498867f6f1903c2_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEzLTUtMS0xLTI1MDUx_2f474c9a-095e-4a60-b6e7-19ee0537c6e1"
      unitRef="usd">203052</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ia3062321c0004977a498867f6f1903c2_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzEzLTctMS0xLTI1MDUx_0b674a47-59cf-40de-9a7c-47628cc783e9"
      unitRef="usd">74720480</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzE1LTEtMS0xLTI1MDUx_580ed539-0e56-4f36-9adb-dbe7ba414981"
      unitRef="usd">195025034</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzE1LTMtMS0xLTI1MDUx_db20b85d-4f3e-470c-857e-383bd1f17c6a"
      unitRef="usd">3093114</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzE1LTUtMS0xLTI1MDUx_f6b765c6-66a1-4ef9-8e87-f7f97093a18c"
      unitRef="usd">1818868</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTozMjY3ZTAzN2JiZmY0NzA3YWIxYjdmODYxMWU3MzQyNC90YWJsZXJhbmdlOjMyNjdlMDM3YmJmZjQ3MDdhYjFiN2Y4NjExZTczNDI0XzE1LTctMS0xLTI1MDUx_ff0692eb-92e9-4b1e-93f5-bbb6f2faa91d"
      unitRef="usd">196299280</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i1bbb482cae6741259292340eda12cf76_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzMtMS0xLTEtMjUwNTE_399f97fd-9d64-4bff-abf7-7b44d92e7fac"
      unitRef="usd">1502187</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i1bbb482cae6741259292340eda12cf76_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzMtMy0xLTEtMjUwNTE_93c420aa-f182-4a3e-80d3-3e2e98b9693a"
      unitRef="usd">14506</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i1bbb482cae6741259292340eda12cf76_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzMtNS0xLTEtMjUwNTE_71ed9d6a-cf86-45c2-af69-712f7bd45179"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i1bbb482cae6741259292340eda12cf76_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzMtNy0xLTEtMjUwNTE_bc8f48aa-6faa-4028-a027-43bfc380debc"
      unitRef="usd">1516693</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="icb122e3619ab40b9a8c6de279cfb5f43_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzQtMS0xLTEtMjUwNTE_8ce23f9f-69b7-4211-a479-e217ae9adf37"
      unitRef="usd">7084638</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="icb122e3619ab40b9a8c6de279cfb5f43_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzQtMy0xLTEtMjUwNTE_3b42af0e-588d-40bc-8816-eb3395716566"
      unitRef="usd">70962</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="icb122e3619ab40b9a8c6de279cfb5f43_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzQtNS0xLTEtMjUwNTE_f2f9e153-471f-4611-afa2-016b87d8724a"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="icb122e3619ab40b9a8c6de279cfb5f43_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzQtNy0xLTEtMjUwNTE_e432b081-7dc5-4a6a-870e-abb273565b53"
      unitRef="usd">7155600</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="ib10b217c871547ac8a18c365d90f83c0_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzUtMS0xLTEtMjUwNTE_fe8bce8c-fa71-49d3-8ffb-f9f7fd937281"
      unitRef="usd">6635132</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ib10b217c871547ac8a18c365d90f83c0_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzUtMy0xLTEtMjUwNTE_5a12edab-382e-40fb-84ff-8b9e68b8c541"
      unitRef="usd">43318</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ib10b217c871547ac8a18c365d90f83c0_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzUtNS0xLTEtMjc2MjA_312d886e-0a11-44d2-b7b5-562cb82c0256"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ib10b217c871547ac8a18c365d90f83c0_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzUtNy0xLTEtMjUwNTE_82a7728b-f346-433a-85bd-93d139087c96"
      unitRef="usd">6678450</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i3c92cf5eb8624faf8e91ea0427464b83_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzYtMS0xLTEtMjUwNTE_644bcd64-2e32-4236-afb6-c384e031d844"
      unitRef="usd">10160376</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i3c92cf5eb8624faf8e91ea0427464b83_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzYtMy0xLTEtMjUwNTE_217952ec-156e-443e-8f5e-fffdd1907b67"
      unitRef="usd">124389</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i3c92cf5eb8624faf8e91ea0427464b83_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzYtNS0xLTEtMjUwNTE_d2c8ed02-1a9f-4497-b2c2-7f6b7eaa7f4e"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i3c92cf5eb8624faf8e91ea0427464b83_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzYtNy0xLTEtMjUwNTE_e71ee49d-3406-4dd3-93ba-727e141f9f20"
      unitRef="usd">10284765</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="id3ac6a96f62d4f7fadb8ea1bba78e5b8_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzctMS0xLTEtMjUwNTE_99db17df-4aee-439a-9f0b-669f5dcc1882"
      unitRef="usd">1528861</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="id3ac6a96f62d4f7fadb8ea1bba78e5b8_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzctMy0xLTEtMjUwNTE_ba37d740-3d16-4af2-aec1-933d067a0201"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="id3ac6a96f62d4f7fadb8ea1bba78e5b8_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzctNS0xLTEtMjUwNTE_6fbc6f6f-0a9f-4338-90ed-c72047c37bf5"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="id3ac6a96f62d4f7fadb8ea1bba78e5b8_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzctNy0xLTEtMjUwNTE_68137bbb-515f-4301-9b56-8dc9182b4c14"
      unitRef="usd">1528861</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="id8ff5af5dd654d78ae82381b4ff5c091_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzktMS0xLTEtMjUwNTE_904402d4-b442-434f-a49c-c45168bbc71f"
      unitRef="usd">37681113</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="id8ff5af5dd654d78ae82381b4ff5c091_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzktMy0xLTEtMjUwNTE_572f34a2-118a-4c1c-9e5b-7c22549ca639"
      unitRef="usd">800802</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="id8ff5af5dd654d78ae82381b4ff5c091_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzktNS0xLTEtMjUwNTE_2c86600a-1605-41b5-a661-5803d6fd4822"
      unitRef="usd">557378</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="id8ff5af5dd654d78ae82381b4ff5c091_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzktNy0xLTEtMjUwNTE_aff3aca3-fed2-4e19-a791-5a4b18bce779"
      unitRef="usd">37924537</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="ia0a1d56ef3df4db4b5b9e3ff7471217e_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzEwLTEtMS0xLTI1MDUx_e92ddb97-c44e-4852-9043-50db0eb9c9e6"
      unitRef="usd">3503898</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ia0a1d56ef3df4db4b5b9e3ff7471217e_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzEwLTMtMS0xLTI1MDUx_6a515561-2ea0-45fe-9565-29cfca0bc099"
      unitRef="usd">141622</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ia0a1d56ef3df4db4b5b9e3ff7471217e_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzEwLTUtMS0xLTI1MDUx_368d9f54-e21e-47a5-9969-0776c93fd882"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ia0a1d56ef3df4db4b5b9e3ff7471217e_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzEwLTctMS0xLTI1MDUx_923cb533-8877-4831-b50f-50b915a9ec3d"
      unitRef="usd">3645520</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i22bca552d5f648dc89d61df0099d79fe_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzExLTEtMS0xLTI1MDUx_cf1fdea9-6f5a-4732-899f-5fb8e9a3d546"
      unitRef="usd">8595020</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i22bca552d5f648dc89d61df0099d79fe_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzExLTMtMS0xLTI1MDUx_ca6ba9ed-c143-42ae-968b-75596735fc8d"
      unitRef="usd">429015</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i22bca552d5f648dc89d61df0099d79fe_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzExLTUtMS0xLTI1MDUx_66fb8250-b0ba-4b6d-aa29-c50ce2be9398"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i22bca552d5f648dc89d61df0099d79fe_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzExLTctMS0xLTI1MDUx_ed66e505-4a10-4cff-a3e0-44704bc0b751"
      unitRef="usd">9024035</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i36f58f659c0a461792970b3fbb8621ee_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzEzLTEtMS0xLTI1MDUx_73572a3a-5665-42a6-b84b-f7a0dbcc9ce7"
      unitRef="usd">100776325</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i36f58f659c0a461792970b3fbb8621ee_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzEzLTMtMS0xLTI1MDUx_552669e4-67da-4bed-a363-5938a8a5998a"
      unitRef="usd">6635428</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i36f58f659c0a461792970b3fbb8621ee_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzEzLTUtMS0xLTI1MDUx_0a92cb78-1e6c-44a0-a919-d535a2e50d4c"
      unitRef="usd">3922</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i36f58f659c0a461792970b3fbb8621ee_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzEzLTctMS0xLTI1MDUx_db9e45e3-7681-4a39-972b-99658762de53"
      unitRef="usd">107407831</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzE0LTEtMS0xLTI1MDUx_8a475d48-3a13-4761-b6da-2aa43a6c7745"
      unitRef="usd">177467550</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzE0LTMtMS0xLTI1MDUx_f07422e8-b8d1-4cdd-945e-5c94ddcec0ee"
      unitRef="usd">8260042</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzE0LTUtMS0xLTI1MDUx_af67e8fd-8f5f-4bd3-b97a-47f09003485c"
      unitRef="usd">561300</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZToyZjVmMWM1MzI1NDM0YzUwOWI2ODlmMmNmY2I0ZTE2OS90YWJsZXJhbmdlOjJmNWYxYzUzMjU0MzRjNTA5YjY4OWYyY2ZjYjRlMTY5XzE0LTctMS0xLTI1MDUx_23ee7adf-3fc3-4fb1-979a-44c34a2543fa"
      unitRef="usd">185166292</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MTI2_336f2e2d-97d6-4a3e-a321-15eec7d76ed1">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unrealized losses on investments as of December&#160;31, 2021 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:60.256%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.827%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.829%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&#160;Unrealized&#160;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&#160;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less than one year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,244,053&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;94,417,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Greater than one year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;574,815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,875,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,818,868&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;101,292,353&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:7pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unrealized losses on investments as of December&#160;31, 2020 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:60.256%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.827%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.829%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&#160;Unrealized&#160;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&#160;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less than one year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;561,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,317,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Greater than one year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;561,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,317,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo3YzQwMDFmYWVhNzU0NGZiYTExZmM3MGJkODYyMjdhZS90YWJsZXJhbmdlOjdjNDAwMWZhZWE3NTQ0ZmJhMTFmYzcwYmQ4NjIyN2FlXzEtMS0xLTEtMjUwNTE_bea2f086-d71d-473d-b090-64d852d92d1f"
      unitRef="usd">1244053</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo3YzQwMDFmYWVhNzU0NGZiYTExZmM3MGJkODYyMjdhZS90YWJsZXJhbmdlOjdjNDAwMWZhZWE3NTQ0ZmJhMTFmYzcwYmQ4NjIyN2FlXzEtMy0xLTEtMjUwNTE_c0a21fc0-5b5c-4943-b968-572394f5d0cd"
      unitRef="usd">94417123</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo3YzQwMDFmYWVhNzU0NGZiYTExZmM3MGJkODYyMjdhZS90YWJsZXJhbmdlOjdjNDAwMWZhZWE3NTQ0ZmJhMTFmYzcwYmQ4NjIyN2FlXzItMS0xLTEtMjUwNTE_f1b756d1-80ea-4add-ad64-49f209633330"
      unitRef="usd">574815</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo3YzQwMDFmYWVhNzU0NGZiYTExZmM3MGJkODYyMjdhZS90YWJsZXJhbmdlOjdjNDAwMWZhZWE3NTQ0ZmJhMTFmYzcwYmQ4NjIyN2FlXzItMy0xLTEtMjUwNTE_828c2d95-e5f8-4208-a169-2083d4a557f3"
      unitRef="usd">6875230</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo3YzQwMDFmYWVhNzU0NGZiYTExZmM3MGJkODYyMjdhZS90YWJsZXJhbmdlOjdjNDAwMWZhZWE3NTQ0ZmJhMTFmYzcwYmQ4NjIyN2FlXzMtMS0xLTEtMjUwNTE_fd7a3f79-9a3f-4a90-95bc-6127a6846839"
      unitRef="usd">1818868</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo3YzQwMDFmYWVhNzU0NGZiYTExZmM3MGJkODYyMjdhZS90YWJsZXJhbmdlOjdjNDAwMWZhZWE3NTQ0ZmJhMTFmYzcwYmQ4NjIyN2FlXzMtMy0xLTEtMjUwNTE_c69cc5f8-cd29-4e98-8c78-bf3b155cff3b"
      unitRef="usd">101292353</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo5ZjM4ZDI5Y2U0YTk0NjU5YTAxNGY3ODJiYTYyNWY3Ni90YWJsZXJhbmdlOjlmMzhkMjljZTRhOTQ2NTlhMDE0Zjc4MmJhNjI1Zjc2XzEtMS0xLTEtMjUwNTE_e425ccaa-50cb-4b92-b708-cac786e78821"
      unitRef="usd">561300</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo5ZjM4ZDI5Y2U0YTk0NjU5YTAxNGY3ODJiYTYyNWY3Ni90YWJsZXJhbmdlOjlmMzhkMjljZTRhOTQ2NTlhMDE0Zjc4MmJhNjI1Zjc2XzEtMy0xLTEtMjUwNTE_e6602b22-4719-4761-ba22-b0a603c3bf97"
      unitRef="usd">12317187</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo5ZjM4ZDI5Y2U0YTk0NjU5YTAxNGY3ODJiYTYyNWY3Ni90YWJsZXJhbmdlOjlmMzhkMjljZTRhOTQ2NTlhMDE0Zjc4MmJhNjI1Zjc2XzItMS0xLTEtMjUwNTE_95164789-b2a5-4e84-946f-4828a9b8dbe3"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo5ZjM4ZDI5Y2U0YTk0NjU5YTAxNGY3ODJiYTYyNWY3Ni90YWJsZXJhbmdlOjlmMzhkMjljZTRhOTQ2NTlhMDE0Zjc4MmJhNjI1Zjc2XzItMy0xLTEtMjUwNTE_ffeb7b9d-0d1b-463a-b285-19890aed9c2a"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo5ZjM4ZDI5Y2U0YTk0NjU5YTAxNGY3ODJiYTYyNWY3Ni90YWJsZXJhbmdlOjlmMzhkMjljZTRhOTQ2NTlhMDE0Zjc4MmJhNjI1Zjc2XzMtMS0xLTEtMjUwNTE_71a30b32-361c-44c4-9700-2619a4bfc4ed"
      unitRef="usd">561300</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo5ZjM4ZDI5Y2U0YTk0NjU5YTAxNGY3ODJiYTYyNWY3Ni90YWJsZXJhbmdlOjlmMzhkMjljZTRhOTQ2NTlhMDE0Zjc4MmJhNjI1Zjc2XzMtMy0xLTEtMjUwNTE_0a3af12a-0fd4-4520-bed6-8ec174963d8b"
      unitRef="usd">12317187</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:ImpairmentOfInvestments
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzYyMjk_459a5f90-b12f-495f-9fcd-0cd2a84ea595"
      unitRef="usd">0</us-gaap:ImpairmentOfInvestments>
    <us-gaap:ImpairmentOfInvestments
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzYyMjk_b0aab4ee-6931-45e4-b034-e95d85159356"
      unitRef="usd">0</us-gaap:ImpairmentOfInvestments>
    <us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDc2_6c04656f-add0-4578-8c77-8b9953d0bc81">&lt;div style="margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fixed income securities as of December&#160;31, 2021, have contractual maturities as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:79.560%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.240%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Due within one year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,526,210&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Due between one and five years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;112,784,662&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Due over five years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;78,091,006&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;194,401,878&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i21d3c168115d46f8b230d2037ed6aae9_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTowM2QxMzFjYjVkYzY0MjQxODE0ZTlmMTM3MDg2ZWY2ZC90YWJsZXJhbmdlOjAzZDEzMWNiNWRjNjQyNDE4MTRlOWYxMzcwODZlZjZkXzAtMS0xLTEtMjUwNTE_2561eb9a-21fc-4889-8e9e-3f5d448c9e7b"
      unitRef="usd">3526210</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue
      contextRef="i21d3c168115d46f8b230d2037ed6aae9_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTowM2QxMzFjYjVkYzY0MjQxODE0ZTlmMTM3MDg2ZWY2ZC90YWJsZXJhbmdlOjAzZDEzMWNiNWRjNjQyNDE4MTRlOWYxMzcwODZlZjZkXzEtMS0xLTEtMjUwNTE_a4cb74e9-f41e-4cda-b335-4a8416172d18"
      unitRef="usd">112784662</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue>
    <gntx:DebtSecuritiesAvailableForSaleMaturityAllocatedAndSingleMaturityDateAfterFiveYearsFairValue
      contextRef="i21d3c168115d46f8b230d2037ed6aae9_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTowM2QxMzFjYjVkYzY0MjQxODE0ZTlmMTM3MDg2ZWY2ZC90YWJsZXJhbmdlOjAzZDEzMWNiNWRjNjQyNDE4MTRlOWYxMzcwODZlZjZkXzItMS0xLTEtMjUwNTE_7b4f0b5e-145b-44a4-9af6-91844411f11e"
      unitRef="usd">78091006</gntx:DebtSecuritiesAvailableForSaleMaturityAllocatedAndSingleMaturityDateAfterFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i21d3c168115d46f8b230d2037ed6aae9_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTowM2QxMzFjYjVkYzY0MjQxODE0ZTlmMTM3MDg2ZWY2ZC90YWJsZXJhbmdlOjAzZDEzMWNiNWRjNjQyNDE4MTRlOWYxMzcwODZlZjZkXzMtMS0xLTEtMjUwNTE_a06e2b02-6587-44de-8077-c9f3186f99cd"
      unitRef="usd">194401878</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MTYz_d1791777-a549-4ab6-93fc-83585f526208">&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s financial instruments consist of cash and cash equivalents, investments, accounts receivable, accounts payable, and short and long-term debt. The Company&#x2019;s estimate of the fair values of these financial instruments approximates their carrying amounts at December&#160;31, 2021 and 2020.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDY4_c5313f00-e438-4faa-b072-bd09f6916027">InventoriesInventories include material, direct labor and manufacturing overhead and are valued at the lower of first-in, first-out (FIFO) cost or net realizable value.Estimated inventory allowances for slow-moving and obsolete inventories are based on current assessments of future demands, market conditions, evaluation of longer lead times for certain electronic components and related management initiatives. If market conditions or customer requirements change and are less favorable than those projected by management, inventory allowances are adjusted accordingly.</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MjQ1_d7969a10-a7f9-49eb-be01-d3578f4703df">Inventories consisted of the following as of December&#160;31, 2021 and 2020:&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.934%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.830%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.148%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;235,014,277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;151,688,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Work-in-process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,032,164&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,791,675&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,221,001&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,811,713&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Inventory&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;316,267,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;226,291,843&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterials
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo1NzA3YWRkMDk5Yzc0NDJkYThmMTgwNDNkMTI4NTQ1MS90YWJsZXJhbmdlOjU3MDdhZGQwOTljNzQ0MmRhOGYxODA0M2QxMjg1NDUxXzEtMS0xLTEtMjUwNTE_fbd62213-a68c-4dfd-9520-c9d2bff52f50"
      unitRef="usd">235014277</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo1NzA3YWRkMDk5Yzc0NDJkYThmMTgwNDNkMTI4NTQ1MS90YWJsZXJhbmdlOjU3MDdhZGQwOTljNzQ0MmRhOGYxODA0M2QxMjg1NDUxXzEtMy0xLTEtMjUwNTE_5e7f4c3e-b38f-4052-a886-a2dfa5a216a5"
      unitRef="usd">151688455</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryWorkInProcess
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo1NzA3YWRkMDk5Yzc0NDJkYThmMTgwNDNkMTI4NTQ1MS90YWJsZXJhbmdlOjU3MDdhZGQwOTljNzQ0MmRhOGYxODA0M2QxMjg1NDUxXzItMS0xLTEtMjUwNTE_c6b578cd-d6ae-40ef-bd36-96872ca88784"
      unitRef="usd">34032164</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryWorkInProcess
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo1NzA3YWRkMDk5Yzc0NDJkYThmMTgwNDNkMTI4NTQ1MS90YWJsZXJhbmdlOjU3MDdhZGQwOTljNzQ0MmRhOGYxODA0M2QxMjg1NDUxXzItMy0xLTEtMjUwNTE_bc42f086-a5dd-41ff-9568-daef9c2ad6ba"
      unitRef="usd">32791675</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryFinishedGoods
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo1NzA3YWRkMDk5Yzc0NDJkYThmMTgwNDNkMTI4NTQ1MS90YWJsZXJhbmdlOjU3MDdhZGQwOTljNzQ0MmRhOGYxODA0M2QxMjg1NDUxXzMtMS0xLTEtMjUwNTE_8ac8fd80-ad51-4445-94a8-613d9e7d7005"
      unitRef="usd">47221001</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo1NzA3YWRkMDk5Yzc0NDJkYThmMTgwNDNkMTI4NTQ1MS90YWJsZXJhbmdlOjU3MDdhZGQwOTljNzQ0MmRhOGYxODA0M2QxMjg1NDUxXzMtMy0xLTEtMjUwNTE_c7ea861e-5945-46cb-8153-457efcc128c6"
      unitRef="usd">41811713</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryNet
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo1NzA3YWRkMDk5Yzc0NDJkYThmMTgwNDNkMTI4NTQ1MS90YWJsZXJhbmdlOjU3MDdhZGQwOTljNzQ0MmRhOGYxODA0M2QxMjg1NDUxXzQtMS0xLTEtMjUwNTE_5933b9d6-c37f-46b2-9954-ef3b5c5c6c30"
      unitRef="usd">316267442</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo1NzA3YWRkMDk5Yzc0NDJkYThmMTgwNDNkMTI4NTQ1MS90YWJsZXJhbmdlOjU3MDdhZGQwOTljNzQ0MmRhOGYxODA0M2QxMjg1NDUxXzQtMy0xLTEtMjUwNTE_59b4287a-e1b4-4195-b503-353240e5fbf3"
      unitRef="usd">226291843</us-gaap:InventoryNet>
    <gntx:AllowanceForObsoleteAndSlowMovingInventories
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzc0NTU_482cc88d-c183-4df8-bb2d-3f70d9460597"
      unitRef="usd">10900000</gntx:AllowanceForObsoleteAndSlowMovingInventories>
    <gntx:AllowanceForObsoleteAndSlowMovingInventories
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzc0NjI_66493a8e-2e6e-4a18-b1d4-a9fc36ea814d"
      unitRef="usd">10400000</gntx:AllowanceForObsoleteAndSlowMovingInventories>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDQ4_acec712f-c693-4e96-b2f4-648910e85f99">Plant and EquipmentPlant and equipment is stated at cost. Depreciation and amortization are computed for financial reporting purposes using the straight-line method, with estimated useful lives of 7 to 30 years for buildings and improvements, and 3 to 10 years for machinery and equipment.</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i0610646bb9624aafac6e14c5608181b6_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzc2OTE_1615081f-bd5f-45e5-a68e-b6df11d902b1">P7Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i34867b7304a24dd7a4007167be1b1d40_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzc2OTc_5b72b479-a7e7-4124-bf76-9083f7b72384">P30Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="if7ebd31a63c74bf9abc0ef627013c05b_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzc3NDI_3ed4e3d0-626c-4dce-afc9-efc0690931af">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i89b13e0fa73347388ea591faae8a8d54_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzc3NDg_ca6c9c41-1b11-40aa-a15b-256ab1165b02">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:Depreciation
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzc4MjU_97a6a3e5-8cb6-4104-872c-cfe865f04ed1"
      unitRef="usd">76800000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzc4Mjk_b0f502ce-e784-46b1-a5d3-406aabc01493"
      unitRef="usd">82400000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzc4MzY_a873cefb-9703-482b-bd2a-e173cac75185"
      unitRef="usd">82300000</us-gaap:Depreciation>
    <gntx:AccountPayableCapitalExpenditures
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE2NDkyNjc0NzQ2MDI_aacd072d-271b-4116-8881-a1d05661a17a"
      unitRef="usd">9800000</gntx:AccountPayableCapitalExpenditures>
    <gntx:AccountPayableCapitalExpenditures
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE2NDkyNjc0NzQ2NTU_34a481ba-2a16-4cd0-90e3-d3b2ca8f5120"
      unitRef="usd">4800000</gntx:AccountPayableCapitalExpenditures>
    <gntx:AccountPayableCapitalExpenditures
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE2NDkyNjc0NzQ2Mjk_a67cc78c-84c9-46e6-ae92-d88c415620e2"
      unitRef="usd">3800000</gntx:AccountPayableCapitalExpenditures>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MTEw_d6afb0ba-180a-4e10-8981-807ad6d9e057">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Impairment or Disposal of Long-Lived Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company reviews long-lived assets, including property, plant and equipment and other intangible assets with definite lives, for impairment whenever events or changes in circumstances indicate that the asset&#x2019;s carrying amount may not be recoverable. The Company conducts its long-lived asset impairment analysis in accordance with ASC 360-10-15, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Impairment or Disposal of Long-Lived Assets&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. ASC 360-10-15 &lt;/span&gt;&lt;/div&gt;requires the Company to group assets and liabilities at the lowest level for which identifiable cash flows are largely independent of the cash flows of other assets and liabilities and evaluate the asset group against the sum of the undiscounted future cash flows. If the undiscounted cash flows do not indicate the carrying amount of the asset is recoverable, an impairment charge is measured as the amount by which the carrying amount of the asset group exceeds its fair value based on discounted cash flow analysis or appraisals.</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock>
    <us-gaap:IntangibleAssetsFiniteLivedPolicy
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MjI5_ee7e3b07-66c1-4675-8da4-5326642d1039">PatentsThe Company&#x2019;s policy is to capitalize costs incurred to obtain patents. The cost of patents is amortized over their useful lives. The cost of patents in process is not amortized until issuance.  The Company periodically obtains intellectual property rights, in the ordinary course of business, and the cost of the rights are amortized over their useful lives.</us-gaap:IntangibleAssetsFiniteLivedPolicy>
    <us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDg3_3af9eb95-28e9-4f61-bdd0-ff55a3ca42bf">&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Goodwill and Intangible Assets&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill reflects the cost of an acquisition in excess of the fair values assigned to identifiable net assets acquired. The Company reviews goodwill for impairment during the fourth quarter on an annual basis or more frequently if events or changes in circumstances indicate that goodwill might be impaired. The Company performs an impairment review for its automotive reporting unit, which has been determined to be one of the Company&#x2019;s reportable segments, using either a qualitative approach or quantitative approach which utilizes a fair value method that incorporates certain assumptions and judgments. The fair value of a reporting unit refers to the price that would be received to sell the unit as a whole in an orderly transaction between market participants at the measurement date. The Company performs a qualitative assessment (step 0) to determine whether it is more likely than not that a reporting unit's fair value is less than its carrying amount.  If not, no further goodwill impairment testing is performed. If so, the Company performs a step 1 test to determine the fair value of the reporting unit using an income approach to estimate the fair value of each of its reporting units and a market valuation approach to further support this analysis. If the fair value of the reporting unit is greater than its carrying amount, goodwill is not considered to be impaired. However, if the fair value of the reporting unit is less than its carrying amount, an impairment change is recorded as the excess of the reporting unit's carrying value over its fair value.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The assumptions included in the impairment tests require judgment and changes to these inputs could impact the results of the calculations which could result in an impairment charge in future periods if the carrying amount of the reporting unit exceeds its calculated fair value. For the qualitative assessment performed, management considers factors such as macro-economic conditions, industry and market considerations, overall financial performance, and other company-specific events, amongst other factors, in making the determination as to whether it is more likely than not that a reporting unit's fair value is less than its carrying amount. Other than management's internal projections of future cash flows, the primary assumptions used in the step 1 impairment test is the weighted-average cost of capital and long-term growth rates. Although the Company's cash flow forecasts are based on assumptions that are considered reasonable by management and consistent with the plans and estimates management is using to operate the underlying business, there are significant judgments in determining the expected future cash flows attributable to a reporting unit. There have been no impairment charges recorded currently or in prior periods in which goodwill existed.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Indefinite lived intangible assets are also subject to annual impairment testing or more frequently if indicators of impairment are identified. Management's judgment and assumptions are required in determining the underlying fair value of the indefinite lived intangible assets. While the Company believes the judgments and assumptions used in determining fair value are reasonable, different assumptions could change the estimated fair values and, therefore, impairment charges could be required, which could be material to the consolidated financial statements. The indefinite lived intangible assets were not impaired as a result of the annual test prepared by management for either period presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As part of recent acquisitions, the Company acquired Indefinite lived in-process research and development ("IPR&amp;amp;D") intangible assets. These IPR&amp;amp;D assets are not amortized, but are tested for impairment annually, or more frequently when indicators of potential impairment exist, until the completion or abandonment of the &lt;/span&gt;&lt;/div&gt;associated research and development efforts. Upon completion of the projects, the assets will be amortized over the expected economic life of the asset, which will be determined on that date. Should the project be determined to be abandoned, and if the asset developed has no alternative use, the full value of the asset will be charged to expense.</us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MjIx_ab1446a3-d010-4f11-8409-de26944255e7">&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Revenue from Contracts with Customers&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. Accordingly, revenue is recognized in an amount that reflects the consideration to which the Company expects to be entitled in exchange for promised goods or services when it transfers those goods or services to customers.  Sales are shown net of returns, which have not historically been significant. The Company does not generate sales from arrangements with multiple deliverables. The Company generally receives purchase orders from customers on an annual basis.  Typically, such purchase order provide the annual terms, including pricing, related to a particular vehicle model. Purchase orders generally do not specify quantities. The Company recognizes revenue based on the pricing terms included in our annual purchase orders.  &lt;/span&gt;&lt;/div&gt;As part of certain agreements, entered into in the ordinary course of business, the Company is asked to provide customers with annual price reductions. Such amounts are subject to estimate and are accrued as a reduction of revenue as products are shipped to those customers. For any shipments of product that may be subject to retroactive price adjustments that are then being negotiated, the Company records revenue based on the Company&#x2019;s best estimate of the amount of consideration to which the entity will be entitled in exchange for transferring the promised goods to the customer. The Company's best estimate requires significant judgment based on historical results and expected outcomes of ongoing negotiations with customers. The Company's approach is to consider these adjustments to the contract price as variable consideration which is estimated based on the then most likely price amount. In addition, the Company has ongoing adjustments to our pricing arrangements with customers based on the related content, the cost of our products and other commercial factors. Such pricing accruals are adjusted as they are settled with our customers.</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <us-gaap:AdvertisingCostsPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MTI4_340651da-33b1-45c1-8854-60dd34b7320d">Advertising and Promotional MaterialsAll advertising and promotional costs are expensed as incurred</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:MarketingAndAdvertisingExpense
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE1ODQ1_e3fb62e0-b2a8-4659-85e4-7d5254bc8a57"
      unitRef="usd">1800000</us-gaap:MarketingAndAdvertisingExpense>
    <us-gaap:MarketingAndAdvertisingExpense
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE1ODQ5_1c6a0ac2-da0b-4e5d-9442-1e018718cb9f"
      unitRef="usd">2000000</us-gaap:MarketingAndAdvertisingExpense>
    <us-gaap:MarketingAndAdvertisingExpense
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE1ODU2_f47c9d2b-9fb3-4505-a0ca-f7e016d08ba6"
      unitRef="usd">3000000</us-gaap:MarketingAndAdvertisingExpense>
    <us-gaap:MaintenanceCostPolicyPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MTcw_193805c4-eaa3-43fa-8a1c-77dcb7897287">Repairs and MaintenanceMajor renewals and improvements of property and equipment are capitalized, and repairs and maintenance are expensed as incurred.</us-gaap:MaintenanceCostPolicyPolicyTextBlock>
    <us-gaap:CostOfPropertyRepairsAndMaintenance
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE2MTU0_b0f9e958-0ccc-4226-a948-54f860f97ce7"
      unitRef="usd">24200000</us-gaap:CostOfPropertyRepairsAndMaintenance>
    <us-gaap:CostOfPropertyRepairsAndMaintenance
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE2MTU4_bd21ecc7-8287-4bb2-9463-ed6ed160b068"
      unitRef="usd">22600000</us-gaap:CostOfPropertyRepairsAndMaintenance>
    <us-gaap:CostOfPropertyRepairsAndMaintenance
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE2MTY1_f6c5e7cc-a0f0-4a5a-abae-8cb74bbe5ecb"
      unitRef="usd">28900000</us-gaap:CostOfPropertyRepairsAndMaintenance>
    <gntx:SelfInsurancePolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MTUz_3f455506-5c0e-42e1-9aee-c4729abd44c9">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Self-Insurance&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is self-insured for a portion of its risk on workers&#x2019; compensation and employee medical costs. The arrangements provide for stop loss insurance to manage the Company&#x2019;s risk. Such costs are accrued based on known claims and an estimate of incurred, but not reported (IBNR) claims. IBNR claims are estimated using historical lag information and other data provided by claims administrators. This estimation process is subjective, and to the extent that future results differ from original estimates, adjustments to recorded accruals may be necessary.&lt;/span&gt;&lt;/div&gt;</gntx:SelfInsurancePolicyTextBlock>
    <us-gaap:StandardProductWarrantyPolicy
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MjQ4_21a20f9a-26a6-4fd8-b649-a816baba1b44">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Product Warranty&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company periodically incurs product warranty costs. Any liabilities associated with product warranty are estimated based on known facts and circumstances and are not significant at December&#160;31, 2021, 2020 and 2019. The Company does not offer extended warranties on its products.&lt;/span&gt;&lt;/div&gt;</us-gaap:StandardProductWarrantyPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MjQ5_df332f69-faea-4156-a10d-3589312371c9">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The provision for income taxes is based on the earnings reported in the consolidated financial statements. Deferred income tax assets and liabilities are computed for differences between the financial statement and tax basis of assets and liabilities that will result in deductible or taxable amounts in the future. Such deferred income tax asset and liability computations are based on enacted tax laws and rates. The Company applies the provisions of ASC 740, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, as it relates to uncertainty in income taxes recognized in the Company&#x2019;s consolidated financial statements. A threshold of more likely than not to be sustained upon examination is applied to uncertain tax positions. The Company deems the estimates related to this provision to be reasonable, however, no assurance can be given that the final outcome of these matters will not vary from what is reflected in the historical income tax provisions and accruals.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:LesseeLeasesPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MjMy_2ef680ad-d009-464a-8072-d3eab5096b43">LeasesThe Company has operating leases for corporate offices, warehouses, vehicles, and other equipment, which are included within "Plant and Equipment" section of the Consolidated Balance Sheets. The leases have remaining lease terms of 1 year to 5 years. The weighted average remaining lease term for operating leases as of December 31, 2021 was 2 years, with a weighted average discount rate of 1.5%.</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm
      contextRef="i7757f730a37a42c5b78c44e5e235e054_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE4MjQ1_ab0c3d91-d351-4e00-b6b2-046f7aa9d40e">P1Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm
      contextRef="ib39ca58f01294fb79bb25bc9314e316c_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE4MjUx_17cffcf6-b255-4b88-89d7-bf6aefc1149b">P5Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE4MzQ2_213a6e87-64b1-43da-9c34-aba9934688fa">P2Y</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE4Mzkx_4bc065b4-2e94-4e02-a7bd-1d8424e9a5fc"
      unitRef="number">0.015</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MTIz_3d9dddc4-5fdd-4423-a08a-2746478fa335">Future minimum lease payments for operating leases as of December 31, 2021 were as follows:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.842%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.340%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:26.460%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,352,855&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;872,772&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;166,652&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,408&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total future minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,400,144&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(17,638)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,382,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo4MzNkNmQwMmVjOGI0MzdmODJkMzk3NjhlZDAyODgxYS90YWJsZXJhbmdlOjgzM2Q2ZDAyZWM4YjQzN2Y4MmQzOTc2OGVkMDI4ODFhXzItMS0xLTEtMjUwNTE_64e6fa71-5aa1-4d63-b58e-8df6440700c0"
      unitRef="usd">1352855</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo4MzNkNmQwMmVjOGI0MzdmODJkMzk3NjhlZDAyODgxYS90YWJsZXJhbmdlOjgzM2Q2ZDAyZWM4YjQzN2Y4MmQzOTc2OGVkMDI4ODFhXzMtMS0xLTEtMjUwNTE_1fd81b76-e257-4ae8-8f64-87b50808ce1d"
      unitRef="usd">872772</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo4MzNkNmQwMmVjOGI0MzdmODJkMzk3NjhlZDAyODgxYS90YWJsZXJhbmdlOjgzM2Q2ZDAyZWM4YjQzN2Y4MmQzOTc2OGVkMDI4ODFhXzQtMS0xLTEtMjUwNTE_859b65fe-b44a-45b7-9580-b36d40f02e2b"
      unitRef="usd">166652</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo4MzNkNmQwMmVjOGI0MzdmODJkMzk3NjhlZDAyODgxYS90YWJsZXJhbmdlOjgzM2Q2ZDAyZWM4YjQzN2Y4MmQzOTc2OGVkMDI4ODFhXzUtMS0xLTEtMjUwNTE_0d87bd9b-b356-41cc-8fe3-4d12ddcce2d3"
      unitRef="usd">7408</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <gntx:LesseeOperatingLeaseLiabilityToBePaidDueAfterYearFour
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo4MzNkNmQwMmVjOGI0MzdmODJkMzk3NjhlZDAyODgxYS90YWJsZXJhbmdlOjgzM2Q2ZDAyZWM4YjQzN2Y4MmQzOTc2OGVkMDI4ODFhXzYtMS0xLTEtMjUwNTE_44ab8c1c-1aca-4a5a-8197-401719fe36f4"
      unitRef="usd">457</gntx:LesseeOperatingLeaseLiabilityToBePaidDueAfterYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo4MzNkNmQwMmVjOGI0MzdmODJkMzk3NjhlZDAyODgxYS90YWJsZXJhbmdlOjgzM2Q2ZDAyZWM4YjQzN2Y4MmQzOTc2OGVkMDI4ODFhXzctMS0xLTEtMjUwNTE_7edecf50-b5ef-420b-a35d-5bae18121730"
      unitRef="usd">2400144</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo4MzNkNmQwMmVjOGI0MzdmODJkMzk3NjhlZDAyODgxYS90YWJsZXJhbmdlOjgzM2Q2ZDAyZWM4YjQzN2Y4MmQzOTc2OGVkMDI4ODFhXzgtMS0xLTEtMjUwNTE_b03ea638-4bd2-4a39-b450-1ff854acd626"
      unitRef="usd">17638</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTo4MzNkNmQwMmVjOGI0MzdmODJkMzk3NjhlZDAyODgxYS90YWJsZXJhbmdlOjgzM2Q2ZDAyZWM4YjQzN2Y4MmQzOTc2OGVkMDI4ODFhXzktMS0xLTEtMjUwNTE_29032214-c8bd-43d0-aa86-40374c13a587"
      unitRef="usd">2382506</us-gaap:OperatingLeaseLiability>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDA0_423cfb80-4ff4-41eb-84a1-927a71fb6619">Earnings Per Share&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has unvested share-based payment awards with a right to receive non-forfeitable dividends, which are considered participating securities under ASC 260, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Earnings Per Share&lt;/span&gt;. The Company allocates earnings to participating securities and computes earnings per share using the two-class method. Under the two-class method, net income per share is computed by dividing net income allocated to common shareholders by the weighted average number of common shares outstanding for the period. In applying the two-class method, net income is allocated to both common shares and participating securities based on their respective weighted average shares outstanding for the period.</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDU0_e7675e50-44fa-406f-b467-188072f75972">The following table sets forth the computation of basic and diluted net income per common share under the two-class method for each of the last three years:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:54.088%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.837%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.837%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.838%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Basic Earnings Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Income&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;360,797,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;347,563,621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;424,683,939&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Allocated to participating securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,591,992&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,964,928&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,028,813&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Income available to common shareholders&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;355,205,240&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;342,598,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;419,655,126&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Basic weighted average shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;235,526,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;242,599,923&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;251,766,382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Income per share - Basic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.51&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.67&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Diluted Earnings Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allocation of Net Income used in basic computation&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;355,205,240&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;342,598,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;419,655,126&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reallocation of undistributed earnings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,014&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,104&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Income available to common shareholders &#x2014; Diluted&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;355,222,254&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;342,612,925&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;419,676,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Number of shares used in basic computation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;235,526,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;242,599,923&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;251,766,382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additional weighted average dilutive common stock equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,077,103&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,082,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,506,608&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Diluted weighted average shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;236,604,014&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;243,681,992&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;253,272,990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net income per share &#x2014; Diluted&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.50&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzItMS0xLTEtMjUwNTE_fdf9059c-df7f-461b-97b1-9d0e61186b25"
      unitRef="usd">360797232</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzItMi0xLTEtMjUwNTE_86d70eb7-03bf-4641-b3db-ddce5d22607a"
      unitRef="usd">347563621</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzItMy0xLTEtMjUwNTE_595adeda-7b9b-4df2-ba30-f5467987dc5b"
      unitRef="usd">424683939</us-gaap:NetIncomeLoss>
    <us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossBasic
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzMtMS0xLTEtMjUwNTE_72b06e8a-f85e-4d81-b9bc-6ef298accca4"
      unitRef="usd">5591992</us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossBasic>
    <us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossBasic
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzMtMi0xLTEtMjUwNTE_12bc52d5-e438-4222-8407-659dbf840d3d"
      unitRef="usd">4964928</us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossBasic>
    <us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossBasic
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzMtMy0xLTEtMjc2MzM_bbd27ab9-6743-4ecf-ab9c-b5d434e8c318"
      unitRef="usd">5028813</us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossBasic>
    <us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzQtMS0xLTEtMjUwNTE_04f60360-7238-4e45-b018-0ec7406782f2"
      unitRef="usd">355205240</us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic>
    <us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzQtMi0xLTEtMjUwNTE_135e4761-ae2b-44ac-aebb-2be004a32d12"
      unitRef="usd">342598693</us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic>
    <us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzQtMy0xLTEtMjUwNTE_c9f9da7b-fa55-4aa9-9f85-1db1a0893f26"
      unitRef="usd">419655126</us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzYtMS0xLTEtMjUwNTE_af249a50-61dd-4223-9f76-6f16f113903d"
      unitRef="shares">235526911</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzYtMi0xLTEtMjUwNTE_f24e63d2-9d20-467a-93f9-263129bf6748"
      unitRef="shares">242599923</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzYtMy0xLTEtMjUwNTE_11ca053e-d225-4266-b59d-9f4ddd286ce9"
      unitRef="shares">251766382</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzctMS0xLTEtMjUwNTE_d918a590-0f45-4a4b-b340-ad7985869b0d"
      unitRef="usdPerShare">1.51</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzctMi0xLTEtMjUwNTE_4b990606-121a-41aa-b232-9c666ddd7645"
      unitRef="usdPerShare">1.41</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzctMy0xLTEtMjUwNTE_8ef8a89a-7d2c-4f4b-bfe7-f9a02f52afaa"
      unitRef="usdPerShare">1.67</us-gaap:EarningsPerShareBasic>
    <us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzEwLTEtMS0xLTI1MDUx_5647ff29-6a43-455d-aa6f-4a49dc5f06f4"
      unitRef="usd">355205240</us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic>
    <us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzEwLTItMS0xLTI1MDUx_7a649388-39f7-45af-8deb-94b130e8cb76"
      unitRef="usd">342598693</us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic>
    <us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzEwLTMtMS0xLTI1MDUx_19d3254e-4c85-4724-be5d-25ad0ddd7f4d"
      unitRef="usd">419655126</us-gaap:NetIncomeLossFromContinuingOperationsAvailableToCommonShareholdersBasic>
    <us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossDiluted
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzExLTEtMS0xLTI1MDUx_78fa25d5-d886-4d9f-97a5-82c375fe29db"
      unitRef="usd">-17014</us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossDiluted>
    <us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossDiluted
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzExLTItMS0xLTI1MDUx_c3be6514-9960-4bef-9378-fc94d2ffc89b"
      unitRef="usd">-14232</us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossDiluted>
    <us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossDiluted
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzExLTMtMS0xLTI1MDUx_c1296317-c9be-43ef-9bb8-ba705be43d32"
      unitRef="usd">-21104</us-gaap:ParticipatingSecuritiesDistributedAndUndistributedEarningsLossDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzEyLTEtMS0xLTI1MDUx_7b0ce21f-0d6e-4efa-92c3-b28d343460dd"
      unitRef="usd">355222254</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzEyLTItMS0xLTI1MDUx_c6e2d069-d1c0-49bf-a13a-5c354fcba539"
      unitRef="usd">342612925</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzEyLTMtMS0xLTI1MDUx_c531a390-780b-4a66-b1f8-5f16dccc5ce4"
      unitRef="usd">419676230</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE0LTEtMS0xLTI1MDUx_7a6d2e40-5052-46e0-9a11-1f71cce0e8fc"
      unitRef="shares">235526911</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE0LTItMS0xLTI1MDUx_60831181-5630-4924-a29e-70732842e4b5"
      unitRef="shares">242599923</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE0LTMtMS0xLTI1MDUx_b7c0860d-2db1-4bf9-8f5c-82b25364d99f"
      unitRef="shares">251766382</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE1LTEtMS0xLTI1MDUx_aef5f4db-e76c-4cca-ab81-2cc6cf19868a"
      unitRef="shares">1077103</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE1LTItMS0xLTI1MDUx_ff5dded2-7fe9-44ee-b17b-5c5c059b3a11"
      unitRef="shares">1082069</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE1LTMtMS0xLTI1MDUx_427c3013-52c5-47df-844a-b8c2a3ff4b7d"
      unitRef="shares">1506608</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE2LTEtMS0xLTI1MDUx_06fa366f-0ce5-4934-902a-6ed657085744"
      unitRef="shares">236604014</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE2LTItMS0xLTI1MDUx_697d6719-55d1-4635-9788-19ed541d08fb"
      unitRef="shares">243681992</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE2LTMtMS0xLTI1MDUx_ef441944-5347-4ada-9efe-6239dabd7b0f"
      unitRef="shares">253272990</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE4LTEtMS0xLTI1MDUx_5ddd0452-c58b-481f-8ffb-cb37e56f1621"
      unitRef="usdPerShare">1.50</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE4LTItMS0xLTI1MDUx_b4275046-bf4c-430e-869c-4ce06a823bbe"
      unitRef="usdPerShare">1.41</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90YWJsZTpjNzNjYzQ2M2VmODY0Yzk4ODI4NDhjYTcxOTFmMDQ2OC90YWJsZXJhbmdlOmM3M2NjNDYzZWY4NjRjOTg4Mjg0OGNhNzE5MWYwNDY4XzE4LTMtMS0xLTI1MDUx_ac2b9820-c238-44e8-a500-031079a93731"
      unitRef="usdPerShare">1.66</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE5NTgy_d29d5222-6e30-4078-b2aa-5fa2ad273b91"
      unitRef="shares">200037</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE5NTkz_1fd0795c-3ebf-4706-8dd2-f66ebdbc18b8"
      unitRef="shares">403071</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzE5NjA4_70bb59d1-fbbe-4e54-8dbc-019f1891830f"
      unitRef="shares">247855</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:ComprehensiveIncomePolicyPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MjI1_5d677885-e4c6-465a-b779-62cb8cdac492">&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Comprehensive Income (Loss)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Comprehensive income (loss) reflects the change in equity of a business enterprise during a period from transactions and other events and circumstances from non-owner sources. For the Company, comprehensive income represents net income adjusted for unrealized gains and losses on certain investments and foreign currency translation adjustments that are further detailed in &lt;/span&gt;&lt;span style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;&lt;a href="#i1049a5e71331417da758f2299126f8c9_160" style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Note 9&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; to the Consolidated Financial Statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MTY2_2858ee2b-51db-4efc-8f68-b4d4e263d380">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The financial position and results of operations of the Company&#x2019;s foreign subsidiaries are measured using the local currency as the functional currency. Assets and liabilities are translated at the exchange rate in effect at year-end. Income statement accounts are translated at the average rate of exchange in effect during the year. The resulting translation adjustment is recorded as a separate component of shareholders&#x2019; investment. Gains and losses arising from re-measuring foreign currency transactions into the appropriate currency are included in the determination of net income.&lt;/span&gt;&lt;/div&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MTQw_54fac460-d815-4450-afb7-e9cbab8f03c0">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock-Based Compensation Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company accounts for stock-based compensation using the fair value recognition provisions of ASC 718, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Compensation - Stock Compensation&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. As described more fully in &lt;/span&gt;&lt;span style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;&lt;a href="#i1049a5e71331417da758f2299126f8c9_148" style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Note 5 to the Consolidated Financial Statements,&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; the Company provides, or has provided, compensation benefits under an omnibus incentive plan, two other stock option plans, another restricted stock plan, and an employee stock purchase plan.  The Company utilizes the Black-Scholes model to estimate the value of the stock options, which requires the input of assumptions. These assumptions include estimating (a)&#160;the length of time employees will retain their vested stock options before exercising them (&#x201c;expected term&#x201d;), (b)&#160;the volatility of the Company&#x2019;s common stock price over the expected term, (c)&#160;the number of options that will ultimately not complete their vesting requirements (&#x201c;forfeitures&#x201d;) and (d)&#160;expected dividends. Changes in the assumptions can materially &lt;/span&gt;&lt;/div&gt;affect the estimate of fair value of stock-based compensation and consequently, the related amounts recognized on the consolidated statements of operations.</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <gntx:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofPlans
      contextRef="i43f3cbef8281417ea3b30b185073dce0_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzIxMTcz_3a882b5e-fdf3-4558-a438-2d757e35a596"
      unitRef="plan">2</gntx:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofPlans>
    <us-gaap:UseOfEstimates
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzMvZnJhZzowZWFiNjQzZTE5MzU0ZWU0YTk2YzM2N2ExZmM5NjRmYy90ZXh0cmVnaW9uOjBlYWI2NDNlMTkzNTRlZTRhOTZjMzY3YTFmYzk2NGZjXzI0MDkw_2fd311d3-05ca-48da-9d32-569713129b0f">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzkvZnJhZzowYzQzNWRjNjg4NjA0ZDMwODFiZTQ2YWEzOTViMDEwZC90ZXh0cmVnaW9uOjBjNDM1ZGM2ODg2MDRkMzA4MWJlNDZhYTM5NWIwMTBkXzE2NzI_c3ef6783-21c6-4046-ae97-e69482c85b10">DEBT AND FINANCING ARRANGEMENTS&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On October 15, 2018, the Company entered into a Credit Agreement ("Credit Agreement") with PNC as the administrative agent and sole lender.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to this Credit Agreement, the Company has access to a $150 million senior revolving credit facility (&#x201c;Revolver&#x201d;). Under the terms of the Credit Agreement, the Company is entitled to further request an additional aggregate principal amount of up to $100 million, subject to the satisfaction of certain conditions. In addition, the Company is entitled to the benefit of Swing Loans from amounts otherwise available under the Revolver in the aggregate principal amount of up to $20 million and to request Letters of Credit from amounts otherwise available under the Revolver in the aggregate principle amount up to $20 million, both subject to certain conditions. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;The obligations of the Company under the Credit Agreement are not secured, but are subject to certain covenants. As of December 31, 2021 and 2020, there were no outstanding balances on the Revolver. The Revolver expires on October 15, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Credit Agreement contains customary representations and warranties and certain covenants that place certain limitations on the Company.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2021, the Company was in compliance with its covenants under the Credit Agreement.&lt;/span&gt;&lt;/div&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:DebtInstrumentFaceAmount
      contextRef="i303d7e07af114308b2b4a9b86a637641_I20181015"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzkvZnJhZzowYzQzNWRjNjg4NjA0ZDMwODFiZTQ2YWEzOTViMDEwZC90ZXh0cmVnaW9uOjBjNDM1ZGM2ODg2MDRkMzA4MWJlNDZhYTM5NWIwMTBkXzI0NA_abaa544f-f3cd-4bd2-9603-8ad9de5ff9cb"
      unitRef="usd">150000000</us-gaap:DebtInstrumentFaceAmount>
    <gntx:DebtInstrumentAdditionalBorrowingsAvailableFaceAmount
      contextRef="i303d7e07af114308b2b4a9b86a637641_I20181015"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzkvZnJhZzowYzQzNWRjNjg4NjA0ZDMwODFiZTQ2YWEzOTViMDEwZC90ZXh0cmVnaW9uOjBjNDM1ZGM2ODg2MDRkMzA4MWJlNDZhYTM5NWIwMTBkXzQyOA_68e9e144-947f-42ec-a8d9-b93fda9fdaaf"
      unitRef="usd">100000000</gntx:DebtInstrumentAdditionalBorrowingsAvailableFaceAmount>
    <gntx:DebtInstrumentAdditionalBorrowingsAvailableFaceAmount
      contextRef="ic7f86270e1594ea286b2519288fd1169_I20181015"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzkvZnJhZzowYzQzNWRjNjg4NjA0ZDMwODFiZTQ2YWEzOTViMDEwZC90ZXh0cmVnaW9uOjBjNDM1ZGM2ODg2MDRkMzA4MWJlNDZhYTM5NWIwMTBkXzY0NQ_cc7d20c3-5fb6-4c6f-98ff-ae7ee64766ee"
      unitRef="usd">20000000</gntx:DebtInstrumentAdditionalBorrowingsAvailableFaceAmount>
    <gntx:DebtInstrumentAdditionalBorrowingsAvailableFaceAmount
      contextRef="i4f7cfd7d5f804a92bd393fde66a3411e_I20181015"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzkvZnJhZzowYzQzNWRjNjg4NjA0ZDMwODFiZTQ2YWEzOTViMDEwZC90ZXh0cmVnaW9uOjBjNDM1ZGM2ODg2MDRkMzA4MWJlNDZhYTM5NWIwMTBkXzc3Mw_9c9cc47a-f0d6-4dc7-9d09-3fb0be7a1a8e"
      unitRef="usd">20000000</gntx:DebtInstrumentAdditionalBorrowingsAvailableFaceAmount>
    <us-gaap:LongTermDebt
      contextRef="i684eafea87a84e3dad3696b2fa0c5133_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzkvZnJhZzowYzQzNWRjNjg4NjA0ZDMwODFiZTQ2YWEzOTViMDEwZC90ZXh0cmVnaW9uOjBjNDM1ZGM2ODg2MDRkMzA4MWJlNDZhYTM5NWIwMTBkXzEzNDY_4da45cbf-bb7b-4e1c-9156-fcae025210e2"
      unitRef="usd">0</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="iee40820c8b2f4eeba6869634061075b5_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMzkvZnJhZzowYzQzNWRjNjg4NjA0ZDMwODFiZTQ2YWEzOTViMDEwZC90ZXh0cmVnaW9uOjBjNDM1ZGM2ODg2MDRkMzA4MWJlNDZhYTM5NWIwMTBkXzEzNDY_582b1079-32da-44b8-8d7e-4160ebf8da75"
      unitRef="usd">0</us-gaap:LongTermDebt>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzI1MDA_d2143eb8-6abd-4f3c-aa7a-b9be44754c8b">INCOME TAXESThe provision for income taxes is based on the earnings reported in the accompanying consolidated financial statements. The Company recognizes deferred income tax liabilities and assets for the expected future tax consequences of events that have been included in the consolidated financial statements or tax returns. Under this method, deferred income tax liabilities and assets are determined based on the cumulative temporary differences between the financial statement and tax basis of assets and liabilities using enacted tax rates expected to be applied to taxable income in years which those temporary differences are expected to be recovered or settled. Deferred income tax expense is measured by the net change in deferred income tax assets and liabilities during the year.&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The foreign components of income before the provision for income taxes were not material for the years ended December&#160;31, 2021, 2020 and 2019. The components of the provision for income taxes are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.528%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:53.244%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.596%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Currently payable:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;89,507,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;67,606,617&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73,563,685&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,642,926&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,180,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,765,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,098,433&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,882,195&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,468,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;97,249,255&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;79,669,030&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;78,797,632&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred income tax benefit:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Primarily federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(41,694,751)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(15,419,722)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,066,237)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,554,504&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,249,308&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,731,395&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:7pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The effective income tax rates are different from the statutory federal income tax rates for the following reasons:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.994%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.676%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.676%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.678%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Statutory federal income tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State income taxes, net of federal income tax benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Research tax credit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.0)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increase (Decrease) in reserve for uncertain tax provisions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(0.1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign tax credit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(0.2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(0.1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(0.1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign derived intangible income deduction&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6.3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5.2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4.8)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.0)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Effective income tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tax effect of temporary differences which give rise to deferred income tax assets and liabilities at&#160;&#160;&#160;&#160;December&#160;31, 2021 and 2020, are as follows:&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.842%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.301%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.805%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.807%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accruals not currently deductible&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,823,493&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,135,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Research and development costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;49,099,538&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,371,625&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,707,737&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,983,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,118,484&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,163,204&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total deferred income tax assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;77,749,252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,653,777&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Excess tax over book depreciation&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(20,728,577)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(29,977,693)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(37,999,022)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(33,427,901)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11,718,904)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11,237,588)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,507,071)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,971,338)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total deferred income tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(72,953,574)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(78,614,520)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net deferred income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,795,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(38,960,743)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Net operating loss carryforwards with no expiration totaling $8.5&#160;million are available to reduce future taxable earnings of certain domestic and foreign subsidiaries.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Income taxes paid in cash were approximately $105.8 million, $61.9 million and $74.9 million in 2021, 2020 and 2019, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:56.132%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.738%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Beginning of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,864,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,392,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,678,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions based on tax positions related to the current year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,023,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;918,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,695,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions for tax positions in prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;364,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;770,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;657,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions for tax positions in prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(51,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,907,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(38,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of a lapse of the applicable statute of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(925,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(309,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(600,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;End of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,275,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,864,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,392,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;If recognized, unrecognized tax benefits would affect the effective tax rate.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes interest and penalties related to unrecognized tax benefits through the provision for income taxes. The Company has accrued approximately $605,000, $577,000, and $574,000 for interest as of December&#160;31, 2021, 2020, and 2019, respectively.  Interest expensed during 2021, 2020 and 2019 was not considered significant.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is also subject to periodic and routine audits in both domestic and foreign tax jurisdictions, and it is reasonably possible that the amounts of unrecognized tax benefits could change as a result of an audit. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Based on the current audits in process, the payment of taxes as a result of audit settlements, and the completion of tax examinations, the Company does not expect these to have a material impact on the Company&#x2019;s financial position or results of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the majority of tax jurisdictions, the Company is no longer subject to U.S. federal, state and local, or non-U.S. income tax examinations by tax authorities for years before 2016.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzI0OTU_5884b41c-5a36-46a2-ad78-b19d3faed3e1">The components of the provision for income taxes are as follows:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.528%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:53.244%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.596%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Currently payable:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;89,507,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;67,606,617&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73,563,685&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,642,926&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,180,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,765,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,098,433&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,882,195&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,468,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;97,249,255&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;79,669,030&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;78,797,632&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred income tax benefit:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Primarily federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(41,694,751)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(15,419,722)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,066,237)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,554,504&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,249,308&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,731,395&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzItMS0xLTEtMjUwNTE_d71ffbf7-db95-4071-92ad-a13b99299bc8"
      unitRef="usd">89507896</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzItMy0xLTEtMjUwNTE_bbfdbbbb-a3de-49b0-a081-9291a959bc27"
      unitRef="usd">67606617</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzItNS0xLTEtMjUwNTE_f0498a49-a724-4021-8145-a09977fa3ccb"
      unitRef="usd">73563685</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzMtMS0xLTEtMjUwNTE_90063388-ad69-4205-a2a7-e6268eba1c04"
      unitRef="usd">5642926</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzMtMy0xLTEtMjUwNTE_27f9cdab-86ca-4082-bf30-9c01c7b95bce"
      unitRef="usd">10180218</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzMtNS0xLTEtMjUwNTE_9c328978-6876-4287-806b-6e4f62e26c9e"
      unitRef="usd">3765929</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzQtMS0xLTEtMjUwNTE_7586c2a6-4d3a-412a-b3b3-cd3504740d29"
      unitRef="usd">2098433</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzQtMy0xLTEtMjUwNTE_7922b4d2-b6d2-4796-835e-b24a6f32cdd7"
      unitRef="usd">1882195</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzQtNS0xLTEtMjUwNTE_89b6d5b9-2b68-4f40-8313-ab7c42e3d581"
      unitRef="usd">1468018</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzUtMS0xLTEtMjUwNTE_70b6c95c-2ab4-4be6-8be6-6607ef7a517c"
      unitRef="usd">97249255</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzUtMy0xLTEtMjUwNTE_68332126-caa5-4dfa-824a-60a138dae597"
      unitRef="usd">79669030</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzUtNS0xLTEtMjUwNTE_84f5345e-c2e3-402e-994b-ea6a3f69f98b"
      unitRef="usd">78797632</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzctMS0xLTEtMjUwNTE_5da4610a-2dd1-4928-b4f1-30f0459247b1"
      unitRef="usd">-41694751</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzctMy0xLTEtMjUwNTE_d8d834f6-2fab-464c-886f-bf0353669d69"
      unitRef="usd">-15419722</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzctNS0xLTEtMjUwNTE_3df7af0b-576f-4cea-beed-c1e22174e344"
      unitRef="usd">-3066237</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzgtMS0xLTEtMjUwNTE_361391c4-df8c-43a3-a698-43e9b3a3b3dc"
      unitRef="usd">55554504</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzgtMy0xLTEtMjUwNTE_83416d28-5f41-41f6-9ffb-b5edce9b0e94"
      unitRef="usd">64249308</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTowMWYwNzAxYTI4NGE0YzlhYTM5Mzg5YjJhMWEwMzliMC90YWJsZXJhbmdlOjAxZjA3MDFhMjg0YTRjOWFhMzkzODliMmExYTAzOWIwXzgtNS0xLTEtMjUwNTE_e788fb7a-59a8-4b35-bf10-3534c0b3fe6c"
      unitRef="usd">75731395</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzI1MTI_b46e8685-75e5-4537-89ca-95ddf3d13a58">&lt;div style="margin-bottom:12pt;margin-top:7pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The effective income tax rates are different from the statutory federal income tax rates for the following reasons:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.994%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.676%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.676%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.678%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Statutory federal income tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State income taxes, net of federal income tax benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Research tax credit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.0)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increase (Decrease) in reserve for uncertain tax provisions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(0.1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign tax credit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(0.2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(0.1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(0.1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign derived intangible income deduction&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6.3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5.2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4.8)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.0)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1.1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Effective income tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzEtMS0xLTEtMjUwNTE_ff75793f-44df-46e9-9a7a-40090a0c52ad"
      unitRef="number">0.210</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzEtMy0xLTEtMjUwNTE_07f2941f-71fc-4af8-93d8-808087bcb78c"
      unitRef="number">0.210</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzEtNS0xLTEtMjUwNTE_c3147ee1-64a7-44c5-aee9-6d48dbd24149"
      unitRef="number">0.210</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzItMS0xLTEtMjUwNTE_c0dadab1-5dd4-457e-afd5-cf9ad4e51ec9"
      unitRef="number">0.007</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzItMy0xLTEtMjUwNTE_13d8777a-400e-4016-b9bf-123f6faf59ee"
      unitRef="number">0.021</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzItNS0xLTEtMjUwNTE_b29d2237-ceea-4b26-874c-15191fb0677c"
      unitRef="number">0.006</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzQtMS0xLTEtMjUwNTE_a3118656-56fa-449f-b686-ea7691061c07"
      unitRef="number">0.010</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzQtMy0xLTEtMjUwNTE_39e2f93f-61c5-49d4-8f93-8ee500d867f3"
      unitRef="number">0.014</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzQtNS0xLTEtMjUwNTE_236ea767-7318-4541-8176-54a3643f22b8"
      unitRef="number">0.011</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <gntx:EffectiveIncomeTaxRateReconciliationIncreaseReductioninReserveforUncertainTaxProvisions
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzUtMS0xLTEtMjUwNTE_04f0d8d6-859b-4d95-8711-0c7375ba68b7"
      unitRef="number">0.001</gntx:EffectiveIncomeTaxRateReconciliationIncreaseReductioninReserveforUncertainTaxProvisions>
    <gntx:EffectiveIncomeTaxRateReconciliationIncreaseReductioninReserveforUncertainTaxProvisions
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzUtMy0xLTEtMjUwNTE_e1f72a53-8192-4856-9e72-169fab698252"
      unitRef="number">-0.001</gntx:EffectiveIncomeTaxRateReconciliationIncreaseReductioninReserveforUncertainTaxProvisions>
    <gntx:EffectiveIncomeTaxRateReconciliationIncreaseReductioninReserveforUncertainTaxProvisions
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzUtNS0xLTEtMjUwNTE_7d52024d-e4ea-4850-9a82-dea9a68fd41d"
      unitRef="number">0.003</gntx:EffectiveIncomeTaxRateReconciliationIncreaseReductioninReserveforUncertainTaxProvisions>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsForeign
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzctMS0xLTEtMjUwNTE_bcd20ce9-3c81-4253-afae-7723db2a78c6"
      unitRef="number">0.002</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsForeign>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsForeign
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzctMy0xLTEtMjUwNTE_8509e995-75c3-4a14-a8fa-50f989126980"
      unitRef="number">0.001</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsForeign>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsForeign
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzctNS0xLTEtMjUwNTE_b10c1923-35f2-4136-a88b-1391d3ed4c80"
      unitRef="number">0.001</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsForeign>
    <us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzgtMS0xLTEtMjUwNTE_1802705f-9fd2-45c1-9ba9-bb2c5a206a05"
      unitRef="number">0.063</us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion>
    <us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzgtMy0xLTEtMjUwNTE_c1405ed2-decb-48cb-a1f3-ca4b7848cd69"
      unitRef="number">0.052</us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion>
    <us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzgtNS0xLTEtMjUwNTE_d9bb4a79-7427-4f2c-a5b8-c20f9384d3f3"
      unitRef="number">0.048</us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzktMS0xLTEtMjUwNTE_61e33663-62d9-4b74-b852-f87feb8f1417"
      unitRef="number">0.013</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzktMy0xLTEtMjUwNTE_d33221b9-e640-4731-8f4c-f955a1433de7"
      unitRef="number">0.010</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzktNS0xLTEtMjUwNTE_48ba2e10-cf6f-4881-b4ce-93b11534103b"
      unitRef="number">0.011</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzEwLTEtMS0xLTI1MDUx_e41f1936-71c2-4ff7-82b9-73b42488e6c4"
      unitRef="number">0.003</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzEwLTMtMS0xLTI1MDUx_7bd89968-fd3d-4160-ba83-65382c16e85a"
      unitRef="number">0.003</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzEwLTUtMS0xLTI1MDUx_60314968-7c7e-4f6c-aaf0-7467536cfd77"
      unitRef="number">0.003</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzExLTEtMS0xLTI1MDUx_aa8d60ae-285c-4786-a29e-e468510e142e"
      unitRef="number">0.133</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzExLTMtMS0xLTI1MDUx_0841c408-927f-4212-aa36-ebcebd7b4fb0"
      unitRef="number">0.156</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5NGYxZjk0ODQ4OWM0YjdiODk3ODljMDYzMTk0ODYyMC90YWJsZXJhbmdlOjk0ZjFmOTQ4NDg5YzRiN2I4OTc4OWMwNjMxOTQ4NjIwXzExLTUtMS0xLTI1MDUx_2f55ab97-731a-4f69-a995-74afd7228990"
      unitRef="number">0.151</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzI0OTk_d9dfbc58-fb8d-483a-8c2d-67606fd25e51">&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tax effect of temporary differences which give rise to deferred income tax assets and liabilities at&#160;&#160;&#160;&#160;December&#160;31, 2021 and 2020, are as follows:&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.842%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.301%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.805%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.807%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accruals not currently deductible&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,823,493&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,135,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Research and development costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;49,099,538&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,371,625&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,707,737&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,983,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,118,484&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,163,204&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total deferred income tax assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;77,749,252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,653,777&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Excess tax over book depreciation&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(20,728,577)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(29,977,693)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(37,999,022)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(33,427,901)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11,718,904)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11,237,588)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,507,071)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,971,338)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total deferred income tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(72,953,574)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(78,614,520)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net deferred income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,795,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(38,960,743)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzMtMS0xLTEtMjUwNTE_a31e2105-8bd3-456e-be05-57bb68215579"
      unitRef="usd">12823493</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzMtMy0xLTEtMjUwNTE_3502d8d1-4cdd-47f1-a139-db954d98c544"
      unitRef="usd">13135048</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzQtMS0xLTEtMzAwMjI_bfccf781-3101-4692-a590-95cffdce24ac"
      unitRef="usd">49099538</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzQtMy0xLTEtMzAwMjU_042b3404-bcfb-4ced-a356-6a5c44e1b000"
      unitRef="usd">13371625</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzQtMS0xLTEtMjUwNTE_40428ac7-3122-40de-8d1d-9366be4cb44d"
      unitRef="usd">13707737</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzQtMy0xLTEtMjUwNTE_a80ab4e3-b2fe-43a5-aeec-f3f7b0838015"
      unitRef="usd">11983900</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzgtMS0xLTEtMjUwNTE_18ea7b0d-f819-4dfd-a6b7-5b45c29a53bc"
      unitRef="usd">2118484</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzgtMy0xLTEtMjUwNTE_9340ceff-fb39-403e-9a9e-ef4b84fba10c"
      unitRef="usd">1163204</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzktMS0xLTEtMjUwNTE_07998778-654e-466d-862e-4bdef7d174cf"
      unitRef="usd">77749252</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzktMy0xLTEtMjUwNTE_4771da79-8ca5-41dd-a23e-293b7656554a"
      unitRef="usd">39653777</us-gaap:DeferredTaxAssetsNet>
    <gntx:DeferredTaxLiabilitiesDeferredExpenseExcessTaxOverBookDepreciation
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzExLTEtMS0xLTI1MDUx_bd3bf985-54c9-403d-87b1-f0aa9ba63f56"
      unitRef="usd">20728577</gntx:DeferredTaxLiabilitiesDeferredExpenseExcessTaxOverBookDepreciation>
    <gntx:DeferredTaxLiabilitiesDeferredExpenseExcessTaxOverBookDepreciation
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzExLTMtMS0xLTI1MDUx_0aa0c9bd-ce2e-4e16-9ed4-b7801d74839f"
      unitRef="usd">29977693</gntx:DeferredTaxLiabilitiesDeferredExpenseExcessTaxOverBookDepreciation>
    <us-gaap:DeferredTaxLiabilitiesDeferredExpenseCapitalizedPatentCosts
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzEyLTEtMS0xLTI1MDUx_282c63cc-b938-475b-97d4-efc99c566554"
      unitRef="usd">37999022</us-gaap:DeferredTaxLiabilitiesDeferredExpenseCapitalizedPatentCosts>
    <us-gaap:DeferredTaxLiabilitiesDeferredExpenseCapitalizedPatentCosts
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzEyLTMtMS0xLTI1MDUx_49dc2d9c-da05-41ad-9bb1-8dda5df85047"
      unitRef="usd">33427901</us-gaap:DeferredTaxLiabilitiesDeferredExpenseCapitalizedPatentCosts>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzEzLTEtMS0xLTI1MDUx_f3566fc5-be07-481a-8ae2-c500445da25e"
      unitRef="usd">11718904</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzEzLTMtMS0xLTI1MDUx_8a8897ad-b169-498c-ab75-f55332c7188a"
      unitRef="usd">11237588</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzE0LTEtMS0xLTI1MDUx_1a944f65-f59a-4087-95ab-2e169a0f1caa"
      unitRef="usd">2507071</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzE0LTMtMS0xLTI1MDUx_934b9ffe-4025-4e24-b9a7-0153fdcf76a8"
      unitRef="usd">3971338</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzE1LTEtMS0xLTI1MDUx_de55ca45-7be0-4259-9e4c-be3f18069485"
      unitRef="usd">72953574</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzE1LTMtMS0xLTI1MDUx_11d75cdb-b7a3-4ca9-955a-9c39bed1f862"
      unitRef="usd">78614520</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i6560452c21cd4b0e8cb281a633dd4b77_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzE2LTEtMS0xLTI1MDUx_572e1ce6-22be-4326-9759-2959395fe81a"
      unitRef="usd">4795678</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTozOWE3OWY1Yjg5ODc0MTEzOTk4OTBiMjMxZDMxZDQ1OC90YWJsZXJhbmdlOjM5YTc5ZjViODk4NzQxMTM5OTg5MGIyMzFkMzFkNDU4XzE2LTMtMS0xLTI1MDUx_ea611e2f-6f5b-4e49-9dc1-58baece65035"
      unitRef="usd">38960743</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OperatingLossCarryforwards
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzIxOTkwMjMyNTg4Mzk_0b0167f4-bf37-4e21-bd71-6b66996195f0"
      unitRef="usd">8500000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:IncomeTaxesPaid
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzEyOTY_54c8aa5d-c399-42d0-8ee1-e68875f3e044"
      unitRef="usd">105800000</us-gaap:IncomeTaxesPaid>
    <us-gaap:IncomeTaxesPaid
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzEzMDA_32807be3-1273-4c6d-9af2-acda713fc711"
      unitRef="usd">61900000</us-gaap:IncomeTaxesPaid>
    <us-gaap:IncomeTaxesPaid
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzEzMDc_46700802-f5cd-4fa0-b30a-858df900880b"
      unitRef="usd">74900000</us-gaap:IncomeTaxesPaid>
    <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzI1MDc_bea57cb3-05fb-452d-9ee1-fe678212495d">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:56.132%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.738%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Beginning of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,864,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,392,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,678,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions based on tax positions related to the current year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,023,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;918,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,695,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions for tax positions in prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;364,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;770,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;657,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions for tax positions in prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(51,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,907,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(38,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of a lapse of the applicable statute of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(925,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(309,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(600,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;End of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,275,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,864,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,392,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzEtMS0xLTEtMjUwNTE_e946ddec-4175-4487-9463-14b996215b3a"
      unitRef="usd">4864000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzEtMy0xLTEtMjUwNTE_50817816-6823-4519-aa39-bda6c3c751a2"
      unitRef="usd">6392000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="if97a82a25bb34a0bbf5a3ffc89bcdb23_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzEtNS0xLTEtMjUwNTE_097fac61-e6f3-4297-84a2-54c0966e1837"
      unitRef="usd">4678000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzItMS0xLTEtMjUwNTE_b805a134-56aa-4969-84cb-c081d7a555b8"
      unitRef="usd">1023000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzItMy0xLTEtMjUwNTE_17d76637-5cf0-4269-bc7e-5d02f44ce536"
      unitRef="usd">918000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzItNS0xLTEtMjUwNTE_98452cdb-a579-49e0-b3de-beb78a018e09"
      unitRef="usd">1695000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzMtMS0xLTEtMjUwNTE_d3bbc58c-933a-4a86-bd71-5cbe8902e345"
      unitRef="usd">364000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzMtMy0xLTEtMjUwNTE_1aea0340-7184-4c56-bc8e-6f217e065664"
      unitRef="usd">770000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzMtNS0xLTEtMjUwNTE_d3804d55-ebfa-4bdb-ae6f-82727ecd1a39"
      unitRef="usd">657000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzQtMS0xLTEtMjUwNTE_ac2c2042-d76e-4fd6-be32-0c2a36326d27"
      unitRef="usd">51000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzQtMy0xLTEtMjUwNTE_db87302e-50dd-4d82-87d8-e9b266b9e113"
      unitRef="usd">2907000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzQtNS0xLTEtMjUwNTE_39160d99-08eb-497a-978d-4b5fb49637d3"
      unitRef="usd">38000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzYtMS0xLTEtMjUwNTE_7b3bfb40-f929-4c7c-af34-1af63aa9ed07"
      unitRef="usd">925000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzYtMy0xLTEtMjUwNTE_129f4f50-47c3-429f-a730-ea741d6fde67"
      unitRef="usd">309000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzYtNS0xLTEtMjUwNTE_d92aae40-8e38-40c7-b3a9-70a9bc4d1dac"
      unitRef="usd">600000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzctMS0xLTEtMjUwNTE_90a70a1a-e7cb-4e76-97a1-7376b1b68eaa"
      unitRef="usd">5275000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzctMy0xLTEtMjUwNTE_e83f29f7-cdf2-48ef-91f6-90484cd2577f"
      unitRef="usd">4864000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90YWJsZTo5ZDRlNDMzMWRlZTI0MjI2YTZmZWI4NTFiNjk4OTQ4MC90YWJsZXJhbmdlOjlkNGU0MzMxZGVlMjQyMjZhNmZlYjg1MWI2OTg5NDgwXzctNS0xLTEtMjUwNTE_6c413fae-0fd6-418e-b2a3-e78325f578bf"
      unitRef="usd">6392000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsInterestOnIncomeTaxesAccrued
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzE2ODA_accb19dd-c95a-4e05-b2ad-19d3665e48e8"
      unitRef="usd">605000</us-gaap:UnrecognizedTaxBenefitsInterestOnIncomeTaxesAccrued>
    <us-gaap:UnrecognizedTaxBenefitsInterestOnIncomeTaxesAccrued
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzE2ODQ_7973960f-e940-449c-8c81-5e620a68c66d"
      unitRef="usd">577000</us-gaap:UnrecognizedTaxBenefitsInterestOnIncomeTaxesAccrued>
    <us-gaap:UnrecognizedTaxBenefitsInterestOnIncomeTaxesAccrued
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDIvZnJhZzo4NjkwMDgwYTBmZjE0ZGY5YWY1NDJlNzQ0OGE1MjNmNS90ZXh0cmVnaW9uOjg2OTAwODBhMGZmMTRkZjlhZjU0MmU3NDQ4YTUyM2Y1XzE2OTI_96eac766-0ce0-43e4-9b28-de173d020106"
      unitRef="usd">574000</us-gaap:UnrecognizedTaxBenefitsInterestOnIncomeTaxesAccrued>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDUvZnJhZzpmMjgxODY1NjJkNTk0NzJhYWU1OGQxNmNiNzcyMmFkNy90ZXh0cmVnaW9uOmYyODE4NjU2MmQ1OTQ3MmFhZTU4ZDE2Y2I3NzIyYWQ3XzIxMzQ_f82ad37e-e432-498b-abd3-928b787c74fc">EMPLOYEE BENEFIT PLANS&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has a 401(k) retirement savings plan in which substantially all of its employees may participate. The plan includes a provision for the Company to match a percentage of the employee&#x2019;s contributions at a rate determined by the Company&#x2019;s Board of Directors.  In 2021, 2020 and 2019 the Company&#x2019;s contributions were approximately $9.0 million, $8.9 million and $8.7 million, respectively.  The increase in each of the years was due to increased employee participation in the plan. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company does not provide health care benefits to retired employees.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Gentex Corporation Non-Qualified Deferred Compensation Plan (the "Deferred Compensation Plan") is intended to enhance retirement savings among a select group of management or highly compensated employees who contribute significantly to the success of the Company. It is also intended to constitute an unfunded non-qualified deferred compensation plan described in Sections 201(2), 301(a)(3), and 401(a)(1) of the Employee Retirement Income Security Act of 1974, as amended ("ERISA"). Only select management and highly compensated employees, including executive officers, are eligible to participate. The Deferred Compensation Plan is administered by a committee who shall approve designation of any participants and may also remove participants. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Participants may elect, on a pre-tax basis, to defer receipt of compensation by making an election in accordance with the terms of the Deferred Compensation Plan. Participants are immediately vested in their &lt;/span&gt;&lt;/div&gt;own deferrals and related earnings. The Company may, but is not required, to match participant deferrals. Participants are generally vested in any such matching contributions 50% after two years but before three years of service and 100% after three years of service. A participant's vested credit balance under the Deferred Compensation Plan will generally be paid on the earliest to occur of: a separation from service; a fixed date or event; a change of control; or a plan termination. A participant can elect whether to receive his or her vested credit balance in a lump sum on the relevant payment date or in installments thereafter.</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <us-gaap:DefinedBenefitPlanContributionsByEmployer
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDUvZnJhZzpmMjgxODY1NjJkNTk0NzJhYWU1OGQxNmNiNzcyMmFkNy90ZXh0cmVnaW9uOmYyODE4NjU2MmQ1OTQ3MmFhZTU4ZDE2Y2I3NzIyYWQ3XzM2Mw_baeac6de-2553-494c-ba7e-a32248c1a7bb"
      unitRef="usd">9000000</us-gaap:DefinedBenefitPlanContributionsByEmployer>
    <us-gaap:DefinedBenefitPlanContributionsByEmployer
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDUvZnJhZzpmMjgxODY1NjJkNTk0NzJhYWU1OGQxNmNiNzcyMmFkNy90ZXh0cmVnaW9uOmYyODE4NjU2MmQ1OTQ3MmFhZTU4ZDE2Y2I3NzIyYWQ3XzM2Nw_58098cf9-d7ca-44b5-9aaa-a6bf18f0f0d8"
      unitRef="usd">8900000</us-gaap:DefinedBenefitPlanContributionsByEmployer>
    <us-gaap:DefinedBenefitPlanContributionsByEmployer
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDUvZnJhZzpmMjgxODY1NjJkNTk0NzJhYWU1OGQxNmNiNzcyMmFkNy90ZXh0cmVnaW9uOmYyODE4NjU2MmQ1OTQ3MmFhZTU4ZDE2Y2I3NzIyYWQ3XzM3NA_964c22b9-8b9e-4f25-866d-a914da816a7d"
      unitRef="usd">8700000</us-gaap:DefinedBenefitPlanContributionsByEmployer>
    <gntx:DeferredCompensationArrangementwithIndividualVestingPercentage
      contextRef="iccecd64baade4e9cab6b4ad5f4229cb8_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDUvZnJhZzpmMjgxODY1NjJkNTk0NzJhYWU1OGQxNmNiNzcyMmFkNy90ZXh0cmVnaW9uOmYyODE4NjU2MmQ1OTQ3MmFhZTU4ZDE2Y2I3NzIyYWQ3XzE2OTM_e1e93b1b-a8d9-4391-a44e-88327d12f775"
      unitRef="number">0.50</gntx:DeferredCompensationArrangementwithIndividualVestingPercentage>
    <us-gaap:DeferredCompensationArrangementWithIndividualRequisiteServicePeriod1
      contextRef="i251f8c7922aa4cc7b57b38fff3afe29b_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDUvZnJhZzpmMjgxODY1NjJkNTk0NzJhYWU1OGQxNmNiNzcyMmFkNy90ZXh0cmVnaW9uOmYyODE4NjU2MmQ1OTQ3MmFhZTU4ZDE2Y2I3NzIyYWQ3XzE3MDI_9102ab11-f837-4271-8889-776a2a1a8802">P2Y</us-gaap:DeferredCompensationArrangementWithIndividualRequisiteServicePeriod1>
    <us-gaap:DeferredCompensationArrangementWithIndividualRequisiteServicePeriod1
      contextRef="i720ce4088fe34bef815e613855272f1b_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDUvZnJhZzpmMjgxODY1NjJkNTk0NzJhYWU1OGQxNmNiNzcyMmFkNy90ZXh0cmVnaW9uOmYyODE4NjU2MmQ1OTQ3MmFhZTU4ZDE2Y2I3NzIyYWQ3XzE3MTY_2c5c643d-f2f7-41cd-b09c-264059475aab">P3Y</us-gaap:DeferredCompensationArrangementWithIndividualRequisiteServicePeriod1>
    <gntx:DeferredCompensationArrangementwithIndividualVestingPercentage
      contextRef="ia20f6742f2a74c07a815ee1be4256062_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDUvZnJhZzpmMjgxODY1NjJkNTk0NzJhYWU1OGQxNmNiNzcyMmFkNy90ZXh0cmVnaW9uOmYyODE4NjU2MmQ1OTQ3MmFhZTU4ZDE2Y2I3NzIyYWQ3XzE3MzQ_66e3ac58-24be-4297-82f3-a811eba719ef"
      unitRef="number">1</gntx:DeferredCompensationArrangementwithIndividualVestingPercentage>
    <us-gaap:DeferredCompensationArrangementWithIndividualRequisiteServicePeriod1
      contextRef="ia20f6742f2a74c07a815ee1be4256062_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDUvZnJhZzpmMjgxODY1NjJkNTk0NzJhYWU1OGQxNmNiNzcyMmFkNy90ZXh0cmVnaW9uOmYyODE4NjU2MmQ1OTQ3MmFhZTU4ZDE2Y2I3NzIyYWQ3XzE3NDM_552c3871-023f-4f30-8202-fe94fe369f05">P3Y</us-gaap:DeferredCompensationArrangementWithIndividualRequisiteServicePeriod1>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzY4NjQ_f78b1f6c-1c88-4b10-bc04-c69657be2ada">STOCK-BASED COMPENSATION PLANS&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2021, the Company had two equity incentive plans under which awards are made, which include the Gentex Corporation 2019 Omnibus Incentive Plan ("2019 Omnibus Plan"), and an employee stock purchase plan.  Those plans and any material amendments thereto have previously been approved by shareholders. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The 2019 Omnibus Plan provides for the potential awards to: i) employees; and ii) non-employee directors of the Company or its subsidiaries, which potential awards may be stock options, both incentive stock options and non-qualified stock options, appreciation rights, restricted stock, restricted stock units, performance share awards and performance units, and other awards that are stock-based, cash-based or a combination of both. The 2019 Omnibus Plan replaced the Company's Employee Stock Option Plan, Second Restricted Stock Plan, and Amended and Restated Non-Employee Director Stock Option Plan (the "Prior Plans"), which were also approved by shareholders. Any existing awards previously granted under the Prior Plans remain outstanding in accordance with their terms and are governed by the Prior Plans as applicable.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;2019 Omnibus Incentive Plan&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The 2019 Omnibus Plan covers 45,000,000 shares of common stock. The purpose of the 2019 Omnibus Plan is to attract and retain employees, officers, and directors of the Company and its subsidiaries and to motivate and provide such persons incentives and rewards for performance. As of December 31, 2021, 15,634,656 shares (net of shares from canceled/expired options) have been issued under the 2019 Omnibus Plan, which includes stock options (at a set conversion rate), restricted shares, and performance share awards.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:37.493%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.518%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.650%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.518%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.650%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.518%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.653%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Conversion Rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total Shares Under 2019 Omnibus Plan&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-Qualified Stock Options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,443,588&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.00&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,443,588&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Restricted Stock&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,582,553&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.06&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,485,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Performance Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;420,173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.06&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,705,903&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,446,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,634,656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Employee Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Employee Stock Option Plan allowed the Company to grant up to 24,000,000 shares of common stock under the plan, prior to its replacement by the 2019 Omnibus Plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has granted options on 3,443,588 shares (net of shares from canceled/expired options) under the 2019 Omnibus Plan and 12,734,438 shares (net of shares from canceled/expired options) under the prior plan (prior to its replacement) through December&#160;31, 2021. Under each of such plans, the option exercise price equals the stock&#x2019;s market price on date of grant. The options vest after &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzIyNDk_44101bdb-7601-41d1-a00f-00381c0001f8"&gt;one&lt;/span&gt; to five years, and expire after &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzIyNzY_8890b6b8-7be6-49a7-9fcb-65c7bdb2a802"&gt;five&lt;/span&gt; to ten years.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of each option grant was estimated on the date of grant using the Black-Scholes option pricing model with the following weighted-average assumptions for the indicated periods:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:56.289%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.581%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Dividend yield&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt; (1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected volatility &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27.5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(3)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected term of options (in years) &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(4)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.2&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-average grant-date fair value&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt;(1)&#160;&#160;&#160;&#160;Represents the Company's estimated cash dividend yield over the expected term of option grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt;(2)            Amount is determined based on analysis of historical price volatility of the Company's common stock. The expected volatility is based on the daily percentage change in the price of the stock over a period equal to the expected term of the option grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt;(3)&#160;&#160;&#160;&#160;Represents the U.S. Treasury yield over the expected term of the option grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt;(4)             Represents the period of time that options granted are expected to be outstanding. Based on analysis of historical option exercise activity, the Company has determined that all employee groups exhibit similar exercise and post-vesting termination behavior.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2021, there was $9,324,372 of unrecognized compensation cost related to stock option awards which is expected to be recognized over the remaining vesting periods, with a weighted-average period of 2.08 years. Stock option expense for the years ended December 31, 2021, 2020 and 2019 was $5,780,959, $4,935,527, and $6,345,147 respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of the status of the Company&#x2019;s stock option plans at December&#160;31, 2021, 2020 and 2019, and changes during the same periods are presented in the tables below.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.842%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.774%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.025%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.340%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.340%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.660%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&lt;br/&gt;Ex. Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&#160;&lt;br/&gt;Remaining&lt;br/&gt;Contract Life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&#160;&lt;br/&gt;Value&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at Beginning of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,434&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,184)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,289&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(248)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,535&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.4 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercisable at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,380&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.5 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,433&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.691%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.045%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.360%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.360%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.680%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&lt;br/&gt;Ex. Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&#160;&lt;br/&gt;Remaining&lt;br/&gt;Contract Life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&#160;&lt;br/&gt;Value&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at Beginning of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,435&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,077)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(396)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.4 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;48,501&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercisable at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,358&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.3 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,334&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:47.170%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.006%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.321%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.321%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.324%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&lt;br/&gt;Ex. Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&#160;&lt;br/&gt;Remaining&lt;br/&gt;Contract Life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&#160;&lt;br/&gt;Value&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at Beginning of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,944&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4,402)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36,294&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(156)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,435&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.1 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercisable at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,859&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.2 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,484&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of the status of the Company&#x2019;s non-vested employee stock option activity for the years ended December&#160;31, 2021, 2020, and 2019, are presented in the table below:&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:39.120%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.890%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.363%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.732%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.205%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.521%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.529%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg&lt;br/&gt;Grant&lt;br/&gt;Date&lt;br/&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg&lt;br/&gt;Grant&lt;br/&gt;Date&lt;br/&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg&lt;br/&gt;Grant&lt;br/&gt;Date&lt;br/&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Nonvested Stock Options at Beginning of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,175&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,575&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,842&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,434&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,212)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,585)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,165)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(241)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(386)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(151)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Nonvested Stock Options at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,156&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,175&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,575&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Restricted Shares&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s Second Restricted Stock Plan provided for a maximum number of shares that may be subject to awards of 9,000,000 shares, prior to its replacement by the 2019 Omnibus Plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted shares awarded under either that plan or the 2019 Omnibus Plan entitle the shareholder to all rights of common stock ownership except that the shares may not be sold, transferred, pledged, exchanged or otherwise disposed of during the restriction period. The restriction period is determined by a committee, appointed by the Board of Directors, but may not exceed ten years. The Company has issued 2,582,553 shares under the 2019 Omnibus Plan and 5,630,019 shares under the prior plan (prior to its replacement) as of December&#160;31, 2021, and has 3,760,468 shares outstanding under such plans.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.417%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.185%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.897%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.947%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.897%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.185%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.897%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.947%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.897%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.185%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.897%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.949%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Vesting Period&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:700;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Market Price at Grant Date&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Market Price at Grant Date&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Market Price at Grant Date&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1 Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32.98 - 34.37&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;42,074&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22.16 - 26.94&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,627&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22.19&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2 Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,669&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23.88 - 26.94&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;606,853&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32.98 - 35.67&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;119,504&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23.88 - 31.08&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,718&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20.40&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;309,955&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32.98 - 35.67&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;479,346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20.68 - 28.98&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;773,698&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20.68 - 28.98&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;157,169&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32.98 - 35.67&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;170,355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20.68 - 28.98&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;254,988&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20.68 - 28.98&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,098,611&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$32.98 - 35.67&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;832,948&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$20.68 - 31.08&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,133,031&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$20.40 - 28.98&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="30" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1) Each of these awards cliff vest after the restriction period with no additional restrictions.&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of restricted share award activity, including award grants, vesting, and forfeitures for the years ended December&#160;31, 2021, 2020, and 2019, are presented in the table below:&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:39.120%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.300%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.300%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.304%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Nonvested, Beginning of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,599&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,315&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,099&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;833&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,133&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(759)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(303)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(361)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(179)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(246)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(95)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Nonvested, End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,599&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,315&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December 31, 2021, there was unearned stock-based compensation of $46,009,313 associated with these restricted stock grants. The unearned stock-based compensation related to these grants is being amortized to compensation expense over the applicable restriction periods. Compensation expense related to restricted stock for the years ended December 31, 2021, 2020 and 2019 was $19,304,013, $20,675,447, and $13,770,917 respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Performance Shares&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Performance shares awarded under the 2019 Omnibus Plan are considered performance condition awards as attainment is based on the Company's performance relative to pre-established metrics. The fair value of such performance share awards was determined using the Company's closing stock price on the date of grant. The expected attainment of the metrics for these awards is then analyzed each reporting period, and the related expense is adjusted based on expected attainment, if the then expected attainment differs from previous expectations. The cumulative effect on current and prior periods of a change in expected attainment is recognized in the period of change. As of December 31, 2021, the Company had unearned stock-based compensation of $6,416,607 associated with these performance share grants. The unearned stock-based compensation related to these grants is being amortized to compensation expense over the applicable performance periods. Compensation expense related to performance share grants for the years ended December 31, 2021, 2020, and 2019 was $1,573,831, $4,424,678, and $897,136, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline"&gt;Employee Stock Purchase Plan&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2013, the Gentex Corporation Employee Stock Purchase Plan covering 2,000,000 shares of common stock was approved by the shareholders, replacing a prior plan.  Under such plan, the Company sells shares at 85% of the stock&#x2019;s market price at the date of purchase.  Under ASC 718, the 15% discounted value is recognized as compensation expense.  Compensation expense related to the employee stock purchase plan for the years ended December 31, 2021, 2020, and 2019 was $713,912, $810,605, and $647,988, respectively.  The following table summarizes shares sold to employees under the 2013 Plan in the years ended December&#160;31, 2021, 2020 and 2019:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:39.623%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.491%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.529%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.491%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.215%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.434%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.994%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Plan&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Cumulative Shares Issued&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average  Fair Value 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2013 Employee Stock Purchase Plan&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;143,892&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;208,273&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,498,021&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <gntx:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofPlans
      contextRef="i3b97900e22fc49e69d7cf0b6af439c4d_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzYy_77fefc27-cc3a-40f2-b992-9988a41351c8"
      unitRef="plan">2</gntx:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofPlans>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzEyMjg_3f23bbca-cc2e-425a-8f19-ff5ca488c264"
      unitRef="shares">45000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <gntx:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofSharesIssuedNetOfSharesCanceledOrExpired
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzE0OTU_1cf782aa-8af6-4b2d-b8b2-a3d4c96bed08"
      unitRef="shares">15634656</gntx:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofSharesIssuedNetOfSharesCanceledOrExpired>
    <gntx:SummaryOfSharesUnder2019OmnibusIncentivePlanTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzEwOTk1MTE2MzU0NDU_13490d13-0ad3-420b-bf45-00866abf8b77">&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:37.493%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.518%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.650%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.518%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.650%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.518%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.653%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Conversion Rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total Shares Under 2019 Omnibus Plan&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-Qualified Stock Options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,443,588&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.00&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,443,588&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Restricted Stock&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,582,553&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.06&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,485,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Performance Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;420,173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.06&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,705,903&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,446,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,634,656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</gntx:SummaryOfSharesUnder2019OmnibusIncentivePlanTableTextBlock>
    <gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonQualifiedStockOptionsGranted
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzEtMi0xLTEtMzEzNDQ_22b2459a-3053-4408-8942-7b8fe89115c1"
      unitRef="shares">3443588</gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonQualifiedStockOptionsGranted>
    <gntx:NonQualifiedStockOptionsConversionRatio
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzEtNC0xLTEtMzEzNDg_91509749-5639-49e8-863d-21fb4c71e870"
      unitRef="number">1.00</gntx:NonQualifiedStockOptionsConversionRatio>
    <gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfNonQualifiedStockOptions
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzEtNi0xLTEtMzEzNTA_1750733f-c14f-4959-898e-edc14dba4cba"
      unitRef="shares">3443588</gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfNonQualifiedStockOptions>
    <gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardRestrictedStockGranted
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzItMi0xLTEtMzI3OTE_478cfde0-7e7d-4ef6-9026-9a3b02430b87"
      unitRef="shares">2582553</gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardRestrictedStockGranted>
    <gntx:RestrictedStockConversionRatio
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzItNC0xLTEtMzI3OTQ_1353818a-177b-4f49-8577-df71afa4c212"
      unitRef="number">4.06</gntx:RestrictedStockConversionRatio>
    <gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfRestrictedStock
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzItNi0xLTEtMzI3OTY_07f1d4ab-5202-49fd-9d24-528cff63cd27"
      unitRef="shares">10485165</gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfRestrictedStock>
    <gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceSharesGranted
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzItMi0xLTEtMzEzNDQ_2bf47a22-e631-4def-a7ba-3f96d3a6ae77"
      unitRef="shares">420173</gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceSharesGranted>
    <gntx:PerformanceSharesConversionRatio
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzItNC0xLTEtMzEzNDg_8fc61ab6-f086-4dec-9ed8-1caaddaec436"
      unitRef="number">4.06</gntx:PerformanceSharesConversionRatio>
    <gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPerformanceShares
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzItNi0xLTEtMzEzNTA_cea7ba1a-791b-4cb4-84f5-c59a76686a5e"
      unitRef="shares">1705903</gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPerformanceShares>
    <gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesGrantedTotal
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzMtMi0xLTEtMzEzNDY_8b675dea-ee01-43d3-aa09-e2e1277c9657"
      unitRef="shares">6446314</gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesGrantedTotal>
    <gntx:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofSharesIssuedNetOfSharesCanceledOrExpired
      contextRef="iac9f5c5986cb4c3bbc41635e4d46828f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTpjMjJjYjdhOGJhMWE0M2IyYTg0Y2QxYjQyYzYyYjY2Mi90YWJsZXJhbmdlOmMyMmNiN2E4YmExYTQzYjJhODRjZDFiNDJjNjJiNjYyXzMtNi0xLTEtMzEzNTI_c2c26fe1-15e0-4eda-b600-9a7232d35d88"
      unitRef="shares">15634656</gntx:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofSharesIssuedNetOfSharesCanceledOrExpired>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="i72338fedd6004ec391e1d9715f1c82ef_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzE3OTI_8798c2d6-349d-4bcb-8aef-57108ecffc70"
      unitRef="shares">24000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants
      contextRef="i628fbbc476774832aedf5c728e25b9fc_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzE5MjA_76b87f3d-b140-4aa7-bbb2-d5e68c30fa79"
      unitRef="shares">3443588</gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants>
    <gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants
      contextRef="ia8ac8e607e99452298bf3b357206b954_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzIwMDg_2d2ed402-0ec6-4620-b69f-b6e0a1fbf84d"
      unitRef="shares">12734438</gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i028a645d85fc4a168bbecf9b70336b54_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzIyNTU_12ad74bd-c8c9-47fa-bf03-7782309e0785">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="i028a645d85fc4a168bbecf9b70336b54_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzIyODI_6604b286-01e5-484f-aa79-fb3dc814903d">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzY4NjU_9ea29a11-fec8-45e8-ba5a-594f8cfe0632">The fair value of each option grant was estimated on the date of grant using the Black-Scholes option pricing model with the following weighted-average assumptions for the indicated periods:&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:56.289%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.581%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Dividend yield&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt; (1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected volatility &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27.5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(3)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected term of options (in years) &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(4)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.2&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-average grant-date fair value&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt;(1)&#160;&#160;&#160;&#160;Represents the Company's estimated cash dividend yield over the expected term of option grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt;(2)            Amount is determined based on analysis of historical price volatility of the Company's common stock. The expected volatility is based on the daily percentage change in the price of the stock over a period equal to the expected term of the option grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt;(3)&#160;&#160;&#160;&#160;Represents the U.S. Treasury yield over the expected term of the option grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt;(4)             Represents the period of time that options granted are expected to be outstanding. Based on analysis of historical option exercise activity, the Company has determined that all employee groups exhibit similar exercise and post-vesting termination behavior.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzEtMS0xLTEtMjUwNTE_9d1ec55c-f3b6-4b99-9a61-da41cc63d73e"
      unitRef="number">0.018</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzEtMy0xLTEtMjUwNTE_45b8efc0-cfd4-4d0a-95de-49870a5d5dc1"
      unitRef="number">0.020</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzEtNS0xLTEtMjUwNTE_3e6d344e-0b50-40a5-ac1c-7d237d80835a"
      unitRef="number">0.020</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzItMS0xLTEtMjUwNTE_5bd405f5-227a-49db-9b8a-12605522dc63"
      unitRef="number">0.276</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzItMy0xLTEtMjUwNTE_a414e2de-32b4-48ae-a660-5042494ed82a"
      unitRef="number">0.275</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzItNS0xLTEtMjUwNTE_15e10ee1-b172-40af-8b3f-b1e20b1e8604"
      unitRef="number">0.239</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzMtMS0xLTEtMjUwNTE_9ec20dd1-ad3f-4850-b55c-f393d665bffe"
      unitRef="number">0.013</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzMtMy0xLTEtMjUwNTE_33aeecfa-48cf-416f-bf35-a0b827203fff"
      unitRef="number">0.003</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzMtNS0xLTEtMjUwNTE_200f61fc-bd87-41ca-a2b6-442235fadd7a"
      unitRef="number">0.018</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzQtMS0xLTEtMjUwNTE_f8fea3a8-a15b-4ff5-a125-6622f429eb1e">P4Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzQtMy0xLTEtMjUwNTE_200833a5-473f-410c-bef9-e772dbe73a14">P4Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzQtNS0xLTEtMjUwNTE_273b0a14-d7f6-4580-8cad-5c10fc9e4898">P4Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzUtMS0xLTEtMjUwNTE_ecc22fcc-53bf-4f3a-a6d2-dc30c9bd4e45"
      unitRef="usdPerShare">6.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzUtMy0xLTEtMjUwNTE_dec1e945-160d-41ce-9675-95c2ca8191f9"
      unitRef="usdPerShare">4.83</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowNTVlMTNjMzhiNTU0MTdkOTQ2NzRmZmVkZjZkMjQ5Yi90YWJsZXJhbmdlOjA1NWUxM2MzOGI1NTQxN2Q5NDY3NGZmZWRmNmQyNDliXzUtNS0xLTEtMjUwNTE_bc7091c7-269c-4f7d-8bd8-77f79fd8055b"
      unitRef="usdPerShare">4.42</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="i72338fedd6004ec391e1d9715f1c82ef_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzMyMDc_6804e531-31e1-4896-9ee4-ae6f9fa752f4"
      unitRef="usd">9324372</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ia8ac8e607e99452298bf3b357206b954_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzMzODA_6d88b579-d06e-47dd-964e-ed1a5a377c63">P2Y29D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i849f37839fdf4a1d9dc892474bc4be17_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzM0NjM_ef8e7df9-94ac-4739-8793-9deb563be45f"
      unitRef="usd">5780959</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i30d2c744856040f287ecc6f4346f77fe_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzM0Njc_64266617-b218-45e7-a461-6b709a554004"
      unitRef="usd">4935527</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="idd6bb625d1cf4e45bc2a108d9c8caecd_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzM0NzU_cb2fb3c4-7fa3-4e76-94cd-1d9cf8be5bc4"
      unitRef="usd">6345147</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzY4NjM_bf3e6b56-3c79-4ff9-ad7f-b8e00e226be9">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of the status of the Company&#x2019;s stock option plans at December&#160;31, 2021, 2020 and 2019, and changes during the same periods are presented in the tables below.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.842%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.774%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.025%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.340%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.340%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.660%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&lt;br/&gt;Ex. Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&#160;&lt;br/&gt;Remaining&lt;br/&gt;Contract Life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&#160;&lt;br/&gt;Value&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at Beginning of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,434&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,184)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,289&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(248)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,535&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.4 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercisable at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,380&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.5 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,433&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.691%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.045%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.360%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.360%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.680%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&lt;br/&gt;Ex. Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&#160;&lt;br/&gt;Remaining&lt;br/&gt;Contract Life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&#160;&lt;br/&gt;Value&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at Beginning of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,435&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,077)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(396)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.4 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;48,501&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercisable at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,358&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.3 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,334&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:47.170%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.006%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.321%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.321%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.324%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&lt;br/&gt;Ex. Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg.&#160;&lt;br/&gt;Remaining&lt;br/&gt;Contract Life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&#160;&lt;br/&gt;Value&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at Beginning of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,944&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4,402)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36,294&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(156)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,435&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.1 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercisable at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,859&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.2 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,484&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzItMS0xLTEtMjUwNTE_caa4ff21-4132-4118-96df-a0701ff8cd54"
      unitRef="shares">4533000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzItMy0xLTEtMjUwNTE_da363474-8b87-4a9f-a6ea-1b3380f31f06"
      unitRef="usdPerShare">23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzMtMS0xLTEtMjUwNTE_26d9edea-c75b-48e8-9cd1-7f5afeecd9c7"
      unitRef="shares">1434000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzMtMy0xLTEtMjUwNTE_be303ee3-7faf-49c0-ae67-6f30b1ce101e"
      unitRef="usdPerShare">34</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzQtMS0xLTEtMjUwNTE_3a7a84f6-196e-4404-b06c-2053f86f95f2"
      unitRef="shares">1184000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzQtMy0xLTEtMjUwNTE_8644e0fe-4acb-4437-9af9-14c137e08c74"
      unitRef="usdPerShare">20</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzQtNy0xLTEtMjUwNTE_4f861e01-0abb-4371-9ca9-4e05213302c5"
      unitRef="usd">17289000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzUtMS0xLTEtMjUwNTE_ef759476-c772-4d40-b10f-6fd6afd41839"
      unitRef="shares">248000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzUtMy0xLTEtMjUwNTE_b2429694-b067-467f-ab87-0c7f81575f19"
      unitRef="usdPerShare">27</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzYtMS0xLTEtMjUwNTE_c05e53ad-1292-4e9b-b647-4cd631dcb721"
      unitRef="shares">4535000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzYtMy0xLTEtMjUwNTE_11ca9682-deeb-4cfd-959d-14ff863018bf"
      unitRef="usdPerShare">27</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzYtNS0xLTEtMjUwNTE_f2655a19-6acd-4043-be1a-3d691acb157b">P3Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzYtNy0xLTEtMjUwNTE_a7e4716b-d8fb-4aff-8e0d-8430c7d8c50b"
      unitRef="usd">35283000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzctMS0xLTEtMjUwNTE_d60359fa-64a6-4454-b887-feb25ecff06e"
      unitRef="shares">1380000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzctMy0xLTEtMjUwNTE_2fc04794-e7cc-4faf-81b7-014f4cccef24"
      unitRef="usdPerShare">23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzctNS0xLTEtMjUwNTE_bb291379-bce4-40bf-9144-e5082678a301">P2Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZToxNmZjN2EwZTc4NzU0OTQ2YTg2ZWU1Y2Y5NzcwZTc1YS90YWJsZXJhbmdlOjE2ZmM3YTBlNzg3NTQ5NDZhODZlZTVjZjk3NzBlNzVhXzctNy0xLTEtMjUwNTE_940302a5-56d3-45e5-83e3-406f305914f7"
      unitRef="usd">16433000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzItMS0xLTEtMjUwNTE_70eeabea-3df7-4320-a1ba-df06614cf957"
      unitRef="shares">5435000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzItMy0xLTEtMjUwNTE_32b772f7-92e7-440a-b07c-691dc0163cfa"
      unitRef="usdPerShare">20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzMtMS0xLTEtMjUwNTE_34014984-b516-4868-9b73-2730824ab20d"
      unitRef="shares">1571000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzMtMy0xLTEtMjUwNTE_fb126293-24c7-48cf-b638-649c760821a6"
      unitRef="usdPerShare">26</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzQtMS0xLTEtMjUwNTE_bf45b014-50f8-4d33-ad37-9ca7c7a0da88"
      unitRef="shares">2077000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzQtMy0xLTEtMjUwNTE_e2598842-5372-4d43-b443-a1b55573218d"
      unitRef="usdPerShare">18</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzQtNy0xLTEtMjUwNTE_5b946cdc-2684-4475-b552-f86546404ef5"
      unitRef="usd">23861000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzUtMS0xLTEtMjUwNTE_881ba9cf-5aff-46d0-a3bc-d86af8beba51"
      unitRef="shares">396000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzUtMy0xLTEtMjUwNTE_a41d7328-fca3-4b49-8b44-b91ac8588f47"
      unitRef="usdPerShare">22</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzYtMS0xLTEtMjUwNTE_91138140-9508-4448-aee8-f243e88b9558"
      unitRef="shares">4533000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzYtMy0xLTEtMjUwNTE_167d11b7-01e5-44b0-a00f-b3518b15d997"
      unitRef="usdPerShare">23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzYtNS0xLTEtMjUwNTE_8c112d02-6d46-4ef8-aae1-373fef86cb3b">P3Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzYtNy0xLTEtMjUwNTE_7f98f33b-18fa-4c7b-a25a-a04e9f8c237b"
      unitRef="usd">48501000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzctMS0xLTEtMjUwNTE_ba73a0cd-5f71-4dbb-a5b9-f8376a8b51af"
      unitRef="shares">1358000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzctMy0xLTEtMjUwNTE_eff8dd89-d54c-4639-9b02-3552a3a75512"
      unitRef="usdPerShare">20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzctNS0xLTEtMjUwNTE_414a9cef-de40-49a1-94d3-2e49a9cd7831">P2Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2ZjU4MTI3ODI1ZmM0Yzk3YWFlOGZlYWI2NGM4YmYzMC90YWJsZXJhbmdlOjZmNTgxMjc4MjVmYzRjOTdhYWU4ZmVhYjY0YzhiZjMwXzctNy0xLTEtMjUwNTE_b9917f2f-512b-49dd-82a0-ae01a7936c4c"
      unitRef="usd">18334000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="if97a82a25bb34a0bbf5a3ffc89bcdb23_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzItMS0xLTEtMjUwNTE_56aa5668-ab8f-48f7-be56-5d3d4706568d"
      unitRef="shares">8944000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="if97a82a25bb34a0bbf5a3ffc89bcdb23_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzItMy0xLTEtMjUwNTE_c43434f1-3118-4143-a131-ce8658482d0c"
      unitRef="usdPerShare">18</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzMtMS0xLTEtMjUwNTE_6ba807bf-a334-4d31-9190-550175d8a282"
      unitRef="shares">1049000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzMtMy0xLTEtMjUwNTE_eb6d8b82-7fc9-42a4-bd6c-96526c26ceee"
      unitRef="usdPerShare">25</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzQtMS0xLTEtMjUwNTE_e89abcf3-67b3-46b8-9805-4c27554cab53"
      unitRef="shares">4402000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzQtMy0xLTEtMjUwNTE_2de00602-b37c-46d3-a5a4-dfa84fdef213"
      unitRef="usdPerShare">16</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzQtNy0xLTEtMjUwNTE_6b4725cc-234e-44a2-909c-32e46b82601b"
      unitRef="usd">36294000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzUtMS0xLTEtMjUwNTE_13ce7264-66ce-4b0f-b68f-b5e36da3bdf7"
      unitRef="shares">156000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzUtMy0xLTEtMjUwNTE_2652509d-1643-4b2e-bcdb-dd30b80ce7d8"
      unitRef="usdPerShare">20</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzYtMS0xLTEtMjUwNTE_328d358d-7bea-49d3-9707-f27221e62695"
      unitRef="shares">5435000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzYtMy0xLTEtMjUwNTE_42619a91-e373-4cc4-b42c-5dd7649f7f7c"
      unitRef="usdPerShare">20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzYtNS0xLTEtMjUwNTE_8f771f57-009e-4712-87c8-e95a32395c81">P3Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzYtNy0xLTEtMjUwNTE_c935a99f-78a4-4d9b-bf51-ad2d7e2b54af"
      unitRef="usd">47170000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzctMS0xLTEtMjUwNTE_ec5e6250-8701-461b-89c4-eab8afcf8851"
      unitRef="shares">1859000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzctMy0xLTEtMjUwNTE_b521c1c0-7eb7-4a11-9c51-9b8c15506002"
      unitRef="usdPerShare">18</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzctNS0xLTEtMjUwNTE_ace9513c-65a2-4258-96ff-c4a24b9e7582">P2Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTplOTY5YzkxMWJiZGI0MzQyOTUwM2IwMzQ5NTBmNjBlMy90YWJsZXJhbmdlOmU5NjljOTExYmJkYjQzNDI5NTAzYjAzNDk1MGY2MGUzXzctNy0xLTEtMjUwNTE_1eee9922-dfe6-45ec-aed0-bfdb012eef7a"
      unitRef="usd">20484000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzY4NzQ_9b000321-a7fa-4064-a475-9767f79c747d">&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of the status of the Company&#x2019;s non-vested employee stock option activity for the years ended December&#160;31, 2021, 2020, and 2019, are presented in the table below:&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:39.120%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.890%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.363%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.732%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.205%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.521%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.529%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg&lt;br/&gt;Grant&lt;br/&gt;Date&lt;br/&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg&lt;br/&gt;Grant&lt;br/&gt;Date&lt;br/&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Wtd.&#160;Avg&lt;br/&gt;Grant&lt;br/&gt;Date&lt;br/&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Nonvested Stock Options at Beginning of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,175&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,575&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,842&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,434&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,212)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,585)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,165)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(241)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(386)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(151)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Nonvested Stock Options at End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,156&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,175&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,575&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzItMS0xLTEtMjUwNTE_785618ae-1153-47ce-9d14-adf02057767c"
      unitRef="shares">3175000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzItMy0xLTEtMjUwNTE_27752b12-c90b-4573-a35f-b1c22abef3e8"
      unitRef="usdPerShare">5</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzItNS0xLTEtMjUwNTE_9a306000-5dc4-4ebe-8a49-e33bd2564262"
      unitRef="shares">3575000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzItNy0xLTEtMjUwNTE_9343900e-a3c9-4b8c-869e-5c02e425e4f2"
      unitRef="usdPerShare">4</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="if97a82a25bb34a0bbf5a3ffc89bcdb23_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzItOS0xLTEtMjUwNTE_d3f62093-89be-4858-b41f-5225f96eb6a9"
      unitRef="shares">4842000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="if97a82a25bb34a0bbf5a3ffc89bcdb23_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzItMTEtMS0xLTI1MDUx_f1961c2d-759c-44e2-824d-04c079ff2a26"
      unitRef="usdPerShare">4</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzMtMS0xLTEtMjUwNTE_cd012805-cf1a-4bf4-aa2d-6501c5fa9c1c"
      unitRef="shares">1434000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzMtMy0xLTEtMjUwNTE_29ead7e8-d09d-4f81-925c-6dd4a7674b50"
      unitRef="usdPerShare">7</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzMtNS0xLTEtMjUwNTE_55780919-9b59-4e20-a525-5e94d97a4a20"
      unitRef="shares">1571000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzMtNy0xLTEtMjUwNTE_f1f39d6f-63f6-4199-8f02-e42f95841e6f"
      unitRef="usdPerShare">5</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzMtOS0xLTEtMjUwNTE_55d46d3a-68ab-46e3-baba-1be043c1f97c"
      unitRef="shares">1049000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzMtMTEtMS0xLTI1MDUx_0fefdcb3-8631-4490-819f-919d0ef6fc3c"
      unitRef="usdPerShare">4</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzQtMS0xLTEtMjUwNTE_e039878b-31e2-44fc-ad60-e0cf1f89e87b"
      unitRef="shares">1212000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzQtMy0xLTEtMjUwNTE_5b84f4fd-70e9-4357-a1b9-8a15a096676d"
      unitRef="usdPerShare">4</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzQtNS0xLTEtMjUwNTE_9a414133-6248-4581-9d02-76aaa588d0ae"
      unitRef="shares">1585000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzQtNy0xLTEtMjUwNTE_2c13aee4-b379-43c4-bad4-df28e358ed25"
      unitRef="usdPerShare">4</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzQtOS0xLTEtMjUwNTE_93e486d6-038e-4b92-8f7c-84d79d5f9b3a"
      unitRef="shares">2165000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzQtMTEtMS0xLTI1MDUx_54be2df6-4a37-42f9-b734-df071348030f"
      unitRef="usdPerShare">4</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzUtMS0xLTEtMjUwNTE_d8437762-c23c-45f4-89ca-feb155b7154f"
      unitRef="shares">241000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzUtMy0xLTEtMjUwNTE_595db338-9455-4e98-bbd3-441ddbe3015a"
      unitRef="usdPerShare">5</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzUtNS0xLTEtMjUwNTE_f52c0cf6-5c71-4255-9e18-33c0c1f1230c"
      unitRef="shares">386000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzUtNy0xLTEtMjUwNTE_c7bb1e88-4641-487c-9273-fd101be947eb"
      unitRef="usdPerShare">4</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzUtOS0xLTEtMjUwNTE_2eb1a6ce-0db7-4903-a2cb-a1b72f3cac53"
      unitRef="shares">151000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzUtMTEtMS0xLTI1MDUx_254161ee-8456-44c7-8d40-98c56eb1d869"
      unitRef="usdPerShare">4</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzYtMS0xLTEtMjUwNTE_aaf6ba6c-beed-4e43-b4b7-737e95b482ba"
      unitRef="shares">3156000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzYtMy0xLTEtMjUwNTE_57b73f79-178c-48fe-8eae-133649330b84"
      unitRef="usdPerShare">5</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzYtNS0xLTEtMjUwNTE_c64e75ee-7e08-4787-863e-5b98cec5aebc"
      unitRef="shares">3175000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzYtNy0xLTEtMjUwNTE_cc3e0e47-ce83-4acc-bef2-cd3e1de53c61"
      unitRef="usdPerShare">5</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzYtOS0xLTEtMjUwNTE_1cf576c7-b1c5-48b6-af73-9fa34e662394"
      unitRef="shares">3575000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo2YzcxMmY0YmRmZjU0NTU5OGNhYjM1MGRhMTUyNTQzMy90YWJsZXJhbmdlOjZjNzEyZjRiZGZmNTQ1NTk4Y2FiMzUwZGExNTI1NDMzXzYtMTEtMS0xLTI1MDUx_f96b33fc-5b2b-4cc1-bc73-613bc2490d9f"
      unitRef="usdPerShare">4</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="i1b7ef60a633c44568f457c5b31123805_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzM5NDk_b89b31ab-4e70-44cc-bfa7-1d63e466abc7"
      unitRef="shares">9000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <gntx:ShareBasedCompensationRestrictedPeriod
      contextRef="i628fbbc476774832aedf5c728e25b9fc_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzQzODY_76e98e84-b23f-49ce-a06e-93367369e1a4">P10Y</gntx:ShareBasedCompensationRestrictedPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i628fbbc476774832aedf5c728e25b9fc_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzQ0MTM_6514ed1c-8120-4412-84a0-78043c35ec7d"
      unitRef="shares">2582553</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="iac01d5a75d6f4f5c9908c4cd149b2b2f_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzQ0NTU_160a3444-bffe-4211-a6f6-da8d593956a3"
      unitRef="shares">5630019</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="i628fbbc476774832aedf5c728e25b9fc_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzQ1MzE_8fffefce-549b-4ff5-9aeb-e645070c2a89"
      unitRef="shares">3760468</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzY4NTA_4e9d9bc9-68ff-467c-9d11-6621634d46de">&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.417%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.185%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.897%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.947%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.897%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.185%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.897%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.947%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.897%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.185%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.897%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.949%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Vesting Period&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:700;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Market Price at Grant Date&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Market Price at Grant Date&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Market Price at Grant Date&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1 Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32.98 - 34.37&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;42,074&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22.16 - 26.94&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,627&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22.19&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2 Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,669&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23.88 - 26.94&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;606,853&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32.98 - 35.67&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;119,504&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23.88 - 31.08&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,718&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20.40&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;309,955&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32.98 - 35.67&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;479,346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20.68 - 28.98&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;773,698&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20.68 - 28.98&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;157,169&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32.98 - 35.67&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;170,355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20.68 - 28.98&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;254,988&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20.68 - 28.98&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,098,611&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$32.98 - 35.67&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;832,948&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$20.68 - 31.08&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,133,031&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$20.40 - 28.98&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="30" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1) Each of these awards cliff vest after the restriction period with no additional restrictions.&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i58d49527495745bb8901ad568f234e64_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzItMS0xLTEtMjUwNTE_92127c8e-76cf-4963-95fd-220a660d109c"
      unitRef="shares">24634</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i880b8afc018244d3be527d95eae44da2_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzItMy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo3N2U4NDZjODcyODc0MGRhOTkzYmZkZTM5NjVlYWVkN180_827d0046-b256-413c-b730-f9c2815c9289"
      unitRef="usdPerShare">32.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i795d554650ce46858b928f444b476e94_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzItMy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo3N2U4NDZjODcyODc0MGRhOTkzYmZkZTM5NjVlYWVkN185_c61ece37-2f54-453a-8c3b-6d11a707fd69"
      unitRef="usdPerShare">34.37</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i67d8d25b75164a159a87d2a4cfb03318_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzItNS0xLTEtMjUwNTE_14877439-306a-44bf-9dfb-68c35a613466"
      unitRef="shares">42074</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i8f1338b15aaa49a1b7382942c4a0dd6d_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzItNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjpjNzhiODMxNGY0NWY0NTM5OTEwNzU5YWZlYTU0MTY1MF8xNjQ5MjY3NDQxNjg2_6162f995-f328-4b66-a7f9-2d4c68e18198"
      unitRef="usdPerShare">22.16</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="ib35f921a2a6343dc81edc8703d48296b_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzItNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjpjNzhiODMxNGY0NWY0NTM5OTEwNzU5YWZlYTU0MTY1MF8xNjQ5MjY3NDQxNjk0_37de1386-37a1-478e-a383-51461509c8ac"
      unitRef="usdPerShare">26.94</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="ic619640025684518a36f4f0953efca1e_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzItOS0xLTEtMjUwNTE_f72ffaec-e872-4f14-b7a3-5450cc954a05"
      unitRef="shares">39627</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="ic619640025684518a36f4f0953efca1e_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzItMTEtMS0xLTI1MDUx_84a78e79-5d44-42c6-a20e-e9b8ae88fa3a"
      unitRef="usdPerShare">22.19</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i37c950189f114642a848c808a6075c5b_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzMtMS0xLTEtMjUwNTE_72d01805-00fa-4c22-9c89-c145a82914fd"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i37c950189f114642a848c808a6075c5b_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzMtMy0xLTEtMjUwNTE_56d5d8d2-fabd-411b-8d9c-5da6b5448840"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i267f19162bb5491fae1a12ddd2fb259a_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzMtNS0xLTEtMjUwNTE_b8d98a60-3f5b-4ffb-bb35-1c658466d911"
      unitRef="shares">21669</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i7fa7de17da2f4dd9b48b122eda65bc62_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzMtNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo2OWE0M2U1MTZiMDM0ZWJhOTVhZWUwZTMxZmQ5MTdlZV8xNjQ5MjY3NDQxNjg2_1f0cdf89-3d89-4a0f-9d39-db120f7b05c4"
      unitRef="usdPerShare">23.88</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="if32d1d6c921d47bb8304d0ee2676340b_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzMtNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo2OWE0M2U1MTZiMDM0ZWJhOTVhZWUwZTMxZmQ5MTdlZV8xNjQ5MjY3NDQxNjk0_55809f45-085f-4e2e-9afb-64c38cbc66eb"
      unitRef="usdPerShare">26.94</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i4657a7024c884915bd691857c613727b_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzMtOS0xLTEtMjUwNTE_7f6a2d21-18a3-4351-9077-c44ecfbcb29e"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i4657a7024c884915bd691857c613727b_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzMtMTEtMS0xLTI1MDUx_af89e9da-aeaa-4625-b969-94f1fd996873"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i2a68a9352ce145bbaf00c849c1a89b08_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzQtMS0xLTEtMjUwNTE_19b6cd98-4a24-4034-8c30-67628a8f43be"
      unitRef="shares">606853</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="ib677883cb79b4bf78e350c9b77b1dc9b_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzQtMy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo4YjM1NGQyMjFkNTI0N2Q0YjVjYjQxNzY0YjVhZGVjYV80_511654e5-ad6e-4f72-b67d-0fcad9e7e6d9"
      unitRef="usdPerShare">32.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="ib4c37d6664c549d5847a304dcc53d0cc_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzQtMy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo4YjM1NGQyMjFkNTI0N2Q0YjVjYjQxNzY0YjVhZGVjYV85_3f6f91f7-7b76-48a2-8f21-acbd94d75952"
      unitRef="usdPerShare">35.67</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i6a818808384a406a8f44f601e0d22cef_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzQtNS0xLTEtMjUwNTE_743ce70f-7992-4955-a01b-842cfdc01da4"
      unitRef="shares">119504</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i2ab689e51ec34598a163d766e45cc258_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzQtNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo1YzgwNzYyNWFhYzY0NmM2ODBmY2UxZTU3ZTM0ZjE2OV8xNjQ5MjY3NDQxNjg2_1874fa68-e0ae-43d4-9085-52f703724134"
      unitRef="usdPerShare">23.88</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i25c57c0539b047eaaca211a396ec7a17_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzQtNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo1YzgwNzYyNWFhYzY0NmM2ODBmY2UxZTU3ZTM0ZjE2OV8xNjQ5MjY3NDQxNjk0_2ca38f13-468b-4dab-85a9-368f52715c4d"
      unitRef="usdPerShare">31.08</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i29c0130974c44060bb82296add8f3d71_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzQtOS0xLTEtMjUwNTE_8ea05102-e5d2-4849-86c1-27741eea92f8"
      unitRef="shares">64718</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i29c0130974c44060bb82296add8f3d71_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzQtMTEtMS0xLTI1MDUx_2b86b1b7-396c-4f53-814e-2db2f6c1da56"
      unitRef="usdPerShare">20.4</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i415da526cf1d42b587f083e89a406837_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzUtMS0xLTEtMjUwNTE_bac0e97a-09c9-4069-9726-2659b589b1c3"
      unitRef="shares">309955</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i03188dc5be4e4fcd800b211b58a70228_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzUtMy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo3MzVlY2VhODFjNjQ0ODU3OGM1YjQ2MWJjOWM1Zjk3M180_3c08cf79-b988-40c3-8ca6-b56533e80cc8"
      unitRef="usdPerShare">32.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i82a0f4b34a284f11b8b463f156726e91_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzUtMy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo3MzVlY2VhODFjNjQ0ODU3OGM1YjQ2MWJjOWM1Zjk3M185_ce637757-d477-4efe-9046-979414948721"
      unitRef="usdPerShare">35.67</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i3313d21fbe6b4bb9b5d148965559c9ea_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzUtNS0xLTEtMjUwNTE_1e5bc033-9b76-4e19-a943-8c0a8c87c3d1"
      unitRef="shares">479346</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i707102286f96459a95cb457224f5e7e5_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzUtNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo3NWY4NmRjMzM2MjQ0YzE0OGEyNGMxYzA5NjAyY2M4MV80_74da659f-d34e-478d-9665-871cb36f6380"
      unitRef="usdPerShare">20.68</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i9486a38de5724093a045183a45bdfb39_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzUtNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo3NWY4NmRjMzM2MjQ0YzE0OGEyNGMxYzA5NjAyY2M4MV85_27d4eb67-9024-4f15-8757-60b7ee098caf"
      unitRef="usdPerShare">28.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i6b4455bff294462492378f7c13c206e8_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzUtOS0xLTEtMjUwNTE_bda4e8bf-89ff-45a3-a813-d8373e3f6d90"
      unitRef="shares">773698</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i91fc8d2a03c647adbedd7769175caf9d_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzUtMTEtMS0xLTI1MDUxL3RleHRyZWdpb246YWZlYmUyMTA3OGMxNGMzNWJlNWZlYjg3MTE1YTU2ZjBfNA_5313bc13-f19a-4c2c-a415-568bab6e6e44"
      unitRef="usdPerShare">20.68</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="ifcc4c92479d644e9b23a4645dd067c04_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzUtMTEtMS0xLTI1MDUxL3RleHRyZWdpb246YWZlYmUyMTA3OGMxNGMzNWJlNWZlYjg3MTE1YTU2ZjBfOQ_c04e571a-2d26-4394-8476-fe292fae72f8"
      unitRef="usdPerShare">28.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i6160885b08e24e4eb523a063a058e0e7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzYtMS0xLTEtMjUwNTE_4face888-8889-4563-bc0c-becb3746465f"
      unitRef="shares">157169</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="id123e46fd668464a9c6d1d5541c78b16_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzYtMy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjpjYzcwZWRlZWNkMjY0M2U2OGJlMGYwOWEzZmZjZWUwNF80_4948774b-1056-4345-82ef-1de82f4c507f"
      unitRef="usdPerShare">32.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="idd08b71c75074995aafe7623bc35e38c_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzYtMy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjpjYzcwZWRlZWNkMjY0M2U2OGJlMGYwOWEzZmZjZWUwNF85_88f2261e-0290-49b7-b7bd-ca593d731ef0"
      unitRef="usdPerShare">35.67</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i40b8f34b4ff24df88d8c08c4fb255b3b_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzYtNS0xLTEtMjUwNTE_32baf99f-ab44-435f-9b2c-06916a435ba6"
      unitRef="shares">170355</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i8e3e21a3714c46d18865c7e742903055_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzYtNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjoyOWZlNzgwMDYwODE0YmUxOGJmOGFkOTYyZTE5OGE1N180_6b83996a-3401-49fb-839a-32584ad1e5a0"
      unitRef="usdPerShare">20.68</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i300537b8e8fd4479b039583c68fa1929_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzYtNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjoyOWZlNzgwMDYwODE0YmUxOGJmOGFkOTYyZTE5OGE1N185_c67b15e3-d3c1-43a7-997d-3b5fe30fc537"
      unitRef="usdPerShare">28.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i54cca89675c04e94ada066836707e91a_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzYtOS0xLTEtMjUwNTE_ad676c36-3fc0-4bdd-8f5f-f6233bbd9629"
      unitRef="shares">254988</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i2a2b643e27794ec595d4bc9a28164f45_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzYtMTEtMS0xLTI1MDUxL3RleHRyZWdpb246NGYzZGRlMWU5YmIzNDAzY2FhODYwMGMzZDg1MjJiNzdfNA_dd6be2f9-0829-48dc-8230-31ce46279a32"
      unitRef="usdPerShare">20.68</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i5953b12b4d8e4d5ba0cb79cac114d83b_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzYtMTEtMS0xLTI1MDUxL3RleHRyZWdpb246NGYzZGRlMWU5YmIzNDAzY2FhODYwMGMzZDg1MjJiNzdfOQ_26420b7e-eff2-4447-ad2f-91a8c0a583b8"
      unitRef="usdPerShare">28.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i53158584897a497f9cb9da2bae651151_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzctMS0xLTEtMjUwNTE_470adcc5-82cc-47d5-91ed-93b24e1bfca1"
      unitRef="shares">1098611</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i4cde1042c51c4e098b548799ee08ff7c_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzctMy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjpiYWQ4YTM0NGM1ZWE0OTJiYjMwYjQ3NTY3MDIyNWMxOF81_f8d45ed5-f86f-43ea-8f22-1a11a8c4997a"
      unitRef="usdPerShare">32.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i81a4f4c8d8bf4533add463f51a9ba816_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzctMy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjpiYWQ4YTM0NGM1ZWE0OTJiYjMwYjQ3NTY3MDIyNWMxOF8xMA_308d3f43-ca32-4897-b588-6ec02920ae2a"
      unitRef="usdPerShare">35.67</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="i72c746bc27054011a9421d53d3f3b604_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzctNS0xLTEtMjUwNTE_be6f4b6f-aa66-43c0-9684-f598f47ccd6f"
      unitRef="shares">832948</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i9eecf6e97bb64d6baa29af3396d3fc97_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzctNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo3ZThmZTM4ZTI4ZWI0ODRkYmExODA4ZTQ3YzJkNTliYV81_7091438a-550b-4564-97b8-da188b04e917"
      unitRef="usdPerShare">20.68</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="idbdcc38f20154beab54d974999d37280_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzctNy0xLTEtMjUwNTEvdGV4dHJlZ2lvbjo3ZThmZTM4ZTI4ZWI0ODRkYmExODA4ZTQ3YzJkNTliYV8xMA_a9d9c80c-5430-421f-8e1a-6a5aa609463e"
      unitRef="usdPerShare">31.08</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="ie94cb0a50fba448aa83661dfac732a51_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzctOS0xLTEtMjUwNTE_750276f7-478f-4c43-b382-ba8c5ebb5aec"
      unitRef="shares">1133031</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i7aba4aa6f4fb4194a59e343e1b7858fb_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzctMTEtMS0xLTI1MDUxL3RleHRyZWdpb246MTU3NzZhZjFhNDcxNDYyYmE1NjFiYTAwMzE2ZTRlOWZfNQ_f6026923-fe45-400e-b3c1-d7dc47f1bc81"
      unitRef="usdPerShare">20.40</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="if83df09fa5e84ec69fc40f993a1d911f_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo0MzA1OGRiZjRkNTk0NTQ2OTBhOGQ4OTliMjVhODc5Ni90YWJsZXJhbmdlOjQzMDU4ZGJmNGQ1OTQ1NDY5MGE4ZDg5OWIyNWE4Nzk2XzctMTEtMS0xLTI1MDUxL3RleHRyZWdpb246MTU3NzZhZjFhNDcxNDYyYmE1NjFiYTAwMzE2ZTRlOWZfMTA_4ea9c77e-999e-444f-9464-2d7b767a6d88"
      unitRef="usdPerShare">28.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzY4NTc_6c0a2634-f908-408b-8335-0442e7972d86">&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of restricted share award activity, including award grants, vesting, and forfeitures for the years ended December&#160;31, 2021, 2020, and 2019, are presented in the table below:&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.685%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:39.120%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.300%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.300%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.588%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.304%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(000)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Nonvested, Beginning of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,599&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,315&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,099&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;833&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,133&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(759)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(303)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(361)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(179)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(246)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(95)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Nonvested, End of Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,599&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,315&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzItMS0xLTEtMjUwNTE_7dcae7c1-92f4-4284-a74d-3edb2a8f4307"
      unitRef="shares">3599000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzItMy0xLTEtMjUwNTE_417d632c-099a-43d1-bc28-367d9589e334"
      unitRef="shares">3315000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="if97a82a25bb34a0bbf5a3ffc89bcdb23_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzItNS0xLTEtMjUwNTE_61085ea9-3666-40eb-8b1f-6a52872a7bea"
      unitRef="shares">2638000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzMtMS0xLTEtMjUwNTE_98d7e5e2-2456-43a0-8661-301f5b19f963"
      unitRef="shares">1099000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzMtMy0xLTEtMjUwNTE_6cda25a8-269a-46d6-9e4d-deee9bc46355"
      unitRef="shares">833000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzMtNS0xLTEtMjUwNTE_1c5d7848-21ed-4216-8ad6-afd2a1061fea"
      unitRef="shares">1133000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzQtMS0xLTEtMjUwNTE_170c82fb-1c27-43a1-9ad4-8e2fe401be06"
      unitRef="shares">759000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzQtMy0xLTEtMjUwNTE_9b5dd1b3-28c0-42a2-a672-6d4dc026d805"
      unitRef="shares">303000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzQtNS0xLTEtMjUwNTE_8fe77f3e-5fc2-42a3-bdba-46a7827509da"
      unitRef="shares">361000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzUtMS0xLTEtMjUwNTE_d82ae899-7df9-4dee-9de7-06ddf9d76b6d"
      unitRef="shares">179000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzUtMy0xLTEtMjUwNTE_a938a7e1-e4ad-460e-9f43-40b8f6002400"
      unitRef="shares">246000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzUtNS0xLTEtMjUwNTE_588c233c-181f-4a04-8d85-fd6f1285f618"
      unitRef="shares">95000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzYtMS0xLTEtMjUwNTE_4f6c0f0c-c0d2-46e3-8bd7-da1db9823251"
      unitRef="shares">3760000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzYtMy0xLTEtMjUwNTE_b0659c46-3f79-459c-abf0-77b46035959c"
      unitRef="shares">3599000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTowZTE5NDBiZjA5OTQ0YzZlYWVmOWU3YzcxYjAxMzE4My90YWJsZXJhbmdlOjBlMTk0MGJmMDk5NDRjNmVhZWY5ZTdjNzFiMDEzMTgzXzYtNS0xLTEtMjUwNTE_a28f8312-c238-4774-9bbc-dcdbb6098480"
      unitRef="shares">3315000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:DeferredCompensationEquity
      contextRef="i1b7ef60a633c44568f457c5b31123805_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzQ4MTc_63ed5a2d-e80d-4691-8b70-3f2de8f42872"
      unitRef="usd">46009313</us-gaap:DeferredCompensationEquity>
    <us-gaap:RestrictedStockExpense
      contextRef="iac01d5a75d6f4f5c9908c4cd149b2b2f_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzUxMDU_fc41c078-af73-4f31-9e8b-89cebab64a97"
      unitRef="usd">19304013</us-gaap:RestrictedStockExpense>
    <us-gaap:RestrictedStockExpense
      contextRef="ied9c49a3d059430facee512a286ac7a6_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzUxMDk_a8d1d98a-b2da-49b1-86a0-3dbca75087e2"
      unitRef="usd">20675447</us-gaap:RestrictedStockExpense>
    <us-gaap:RestrictedStockExpense
      contextRef="i9238e0aa28f94e179127a9c4820b2622_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzUxMTc_d31b1fb9-04fa-4419-b4b9-b477df888f66"
      unitRef="usd">13770917</us-gaap:RestrictedStockExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="ib327c16f82954bed8b7a65487c4c8532_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzU5MDE_fe58ab00-6b98-42c8-85e2-25eeb2f17960"
      unitRef="usd">6416607</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:RestrictedStockExpense
      contextRef="id674a8ddc2b649e5bc11b4defb16aa42_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzYyMDA_4b8dd2a6-4868-45e5-9c75-4cb74250d170"
      unitRef="usd">1573831</us-gaap:RestrictedStockExpense>
    <us-gaap:RestrictedStockExpense
      contextRef="i885193f92e6441aaa71b8cf42e87b616_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzYyMDg_da938667-f757-4789-87b1-7c494e3d8313"
      unitRef="usd">4424678</us-gaap:RestrictedStockExpense>
    <us-gaap:RestrictedStockExpense
      contextRef="i85f8c61ac0a74e538d66908addc9095c_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzYyMjY_e62f6dfd-2865-4ea6-9f78-28536b554db3"
      unitRef="usd">897136</us-gaap:RestrictedStockExpense>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="i60ed711660304f788f8e313bb7132df8_I20131231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzY0NDY_70688f13-ee7e-47df-abfe-8f6fb14c3377"
      unitRef="shares">2000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountFromMarketPricePurchaseDate
      contextRef="ic7d70b68d6a042138f35eca6e452bf6a_D20130101-20131231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzY1NzY_ad7cc0f4-aca4-4148-8046-0fd16a7fb587"
      unitRef="number">0.85</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountFromMarketPricePurchaseDate>
    <gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountRecognizedAsCompensationExpense
      contextRef="ic7d70b68d6a042138f35eca6e452bf6a_D20130101-20131231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzY2NTI_91c4eef3-f3e7-4e7b-b041-b252be3fa491"
      unitRef="number">0.15</gntx:ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountRecognizedAsCompensationExpense>
    <us-gaap:RestrictedStockExpense
      contextRef="i7f1c5e60f8a0446f98981cc3d88e310a_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzE2NDkyNjc0NDk5MzY_21a4c55f-b85f-4d0d-9ab7-edcdad7273ee"
      unitRef="usd">713912</us-gaap:RestrictedStockExpense>
    <us-gaap:RestrictedStockExpense
      contextRef="i1ae852c9f45947ecba66e2f6add97cd7_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzE2NDkyNjc0NDk5MzQ_8d6091e6-6cc0-4507-8f43-dd6ea376637b"
      unitRef="usd">810605</us-gaap:RestrictedStockExpense>
    <us-gaap:RestrictedStockExpense
      contextRef="if201ce8ab77244f4941cbee47e891ad3_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzE2NDkyNjc0NDk5MTE_a6809fac-d132-45b2-8a1c-9c63dbf68756"
      unitRef="usd">647988</us-gaap:RestrictedStockExpense>
    <us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90ZXh0cmVnaW9uOjk5OGI3YWM2OWNkNjRjMDRiZWU0ZDBiYjBhYzc4NmYwXzY4NTY_6a099317-f961-478a-9ddf-005dcd488d09">The following table summarizes shares sold to employees under the 2013 Plan in the years ended December&#160;31, 2021, 2020 and 2019:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:39.623%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.491%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.529%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.491%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.215%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.434%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.994%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Plan&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Cumulative Shares Issued&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average  Fair Value 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2013 Employee Stock Purchase Plan&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;143,892&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;208,273&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,498,021&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i7f1c5e60f8a0446f98981cc3d88e310a_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo1MmI2ZWQ4ZjI1MjI0ODI4OTExMjg0NDhiNGIxZGZkMy90YWJsZXJhbmdlOjUyYjZlZDhmMjUyMjQ4Mjg5MTEyODQ0OGI0YjFkZmQzXzEtMS0xLTEtMjUwNTE_ac397f6b-6368-44b6-957a-bcc0211975cd"
      unitRef="shares">143892</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i1ae852c9f45947ecba66e2f6add97cd7_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo1MmI2ZWQ4ZjI1MjI0ODI4OTExMjg0NDhiNGIxZGZkMy90YWJsZXJhbmdlOjUyYjZlZDhmMjUyMjQ4Mjg5MTEyODQ0OGI0YjFkZmQzXzEtMy0xLTEtMjUwNTE_8bb14b62-979f-4123-9948-ac42988f57c6"
      unitRef="shares">208273</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="if201ce8ab77244f4941cbee47e891ad3_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo1MmI2ZWQ4ZjI1MjI0ODI4OTExMjg0NDhiNGIxZGZkMy90YWJsZXJhbmdlOjUyYjZlZDhmMjUyMjQ4Mjg5MTEyODQ0OGI0YjFkZmQzXzEtNS0xLTEtMjUwNTE_5ebd8807-4254-4a9f-9c84-cfadff9283f6"
      unitRef="shares">173013</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i1ba6baa142ac4acfb3393a6ab5956717_D20130101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo1MmI2ZWQ4ZjI1MjI0ODI4OTExMjg0NDhiNGIxZGZkMy90YWJsZXJhbmdlOjUyYjZlZDhmMjUyMjQ4Mjg5MTEyODQ0OGI0YjFkZmQzXzEtNi0xLTEtMjUwNTE_c7e5971f-526e-4c16-9cd6-55ad23a36715"
      unitRef="shares">1498021</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i1ba6baa142ac4acfb3393a6ab5956717_D20130101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNDgvZnJhZzo5OThiN2FjNjljZDY0YzA0YmVlNGQwYmIwYWM3ODZmMC90YWJsZTo1MmI2ZWQ4ZjI1MjI0ODI4OTExMjg0NDhiNGIxZGZkMy90YWJsZXJhbmdlOjUyYjZlZDhmMjUyMjQ4Mjg5MTEyODQ0OGI0YjFkZmQzXzEtNy0xLTEtMjUwNTE_35eb9724-6f90-48b4-856f-007b5e667823"
      unitRef="usdPerShare">29.08</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTEvZnJhZzowZTE1NjE2ODU4MWY0MTE3YTBjMDQ5YjZiM2UzZmYzMS90ZXh0cmVnaW9uOjBlMTU2MTY4NTgxZjQxMTdhMGMwNDliNmIzZTNmZjMxXzYxNw_d1f35ef8-57f2-4bdf-94f7-f33984474388">CONTINGENCIESThe Company is periodically involved in legal proceedings, legal actions and claims arising in the normal course of business, including proceedings relating to product liability, intellectual property, safety and health, employment and other matters. Such matters are subject to many uncertainties and outcomes are not predictable. The Company does not believe, however, that at the current time there are matters that constitute material pending legal proceedings that will have a material adverse effect on the financial position, future results of operations, or cash flows of the Company.</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90ZXh0cmVnaW9uOjJlY2NhNDJjNGZlMTQxYzJiMzBiOTA2Y2QzOGViZDllXzE4MDk_f55aee97-e721-47d7-9863-66e32c74dfed">SEGMENT REPORTING&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASC 280, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Segment Reporting, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;requires that a public enterprise report financial and descriptive information about its reportable operating segments subject to certain aggregation criteria and quantitative thresholds. Operating segments are defined by ASC 280 as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision-makers in deciding how to allocate resources and in assessing performance.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.836%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.774%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.750%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.750%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.752%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Revenue:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;542,690,346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;519,337,271&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;569,939,756&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Germany&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;234,994,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;228,652,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;296,276,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Japan&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;211,417,475&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;216,100,530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;225,577,146&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Mexico&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;111,761,245&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;127,157,684&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;160,967,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other Countries&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;596,324,417&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;556,949,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;557,775,114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,981,895&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;39,991,262&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48,360,519&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,731,169,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,688,189,405&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,858,897,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Income (Loss) from Operations:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;414,185,075&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;393,979,860&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;473,546,112&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,403,097)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,576,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,991,492&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;409,781,978&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;399,556,092&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;488,537,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,495,298,453&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,436,374,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,463,030,286&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,760,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,317,668&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,000,669&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Corporate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;601,331,969&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;728,248,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;689,772,238&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,131,391,166&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,197,941,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,168,803,193&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Depreciation&#160;&amp;amp; Amortization:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;92,516,347&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;97,530,191&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;97,520,972&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;913,451&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;689,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;481,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Corporate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,682,221&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,519,815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,700,141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;99,112,019&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;104,739,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;104,702,974&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Capital Expenditures:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;58,415,887&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,926,686&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;63,537,512&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,467,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,470,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,704,045&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Corporate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,951,198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,309,150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19,338,698&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;68,835,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;51,706,541&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;84,580,255&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:7pt;padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other includes Dimmable Aircraft Windows, Fire Protection Products, and Nanofiber.  Major product line revenues included within the Automotive Products segment are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:4pt;margin-top:9pt;padding-left:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.855%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.723%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.723%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.727%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Mirrors&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,563,424,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,520,628,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,638,600,272&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:18pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt; Modules*&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;133,763,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;127,569,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;171,936,615&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,697,188,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,648,198,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,810,536,887&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other Products Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,981,895&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;39,991,262&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48,360,519&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,731,169,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,688,189,405&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,858,897,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;padding-left:36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;*Excludes HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt; revenue integrated into automotive mirrors. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Corporate assets are principally cash and cash equivalents, investments, deferred income taxes and corporate fixed assets. Depreciation &amp;amp; Amortization on corporate fixed assets are allocated as appropriate to the Automotive and Other segments when reviewing operating results.  Substantially all long-lived assets are located in the U.S.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Automotive Products revenues in the &#x201c;Other countries&#x201d; category are sales to customer automotive manufacturing plants in Korea, Canada, Hungary, China, and the United Kingdom as well as other foreign automotive customers. Most of the Company&#x2019;s non-U.S. sales are invoiced and paid in U.S. dollars. During the years ended December 31, 2021, 2020 and 2019, approximately 8%, 7% and 7% of the Company&#x2019;s net sales were invoiced and paid in foreign currencies, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2021, the Company had three automotive customers (including direct sales to OEM customers and sales through their Tier 1 suppliers), which individually accounted for 10% or more of net sales as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:4pt;margin-top:9pt;padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.543%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:29.073%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.648%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.648%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.653%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Toyota Motor Company&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Volkswagen Group&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;General Motors&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;           &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90ZXh0cmVnaW9uOjJlY2NhNDJjNGZlMTQxYzJiMzBiOTA2Y2QzOGViZDllXzE3ODI_c5165c08-cd5d-44e4-a023-1683c858cf62">&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.836%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.774%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.750%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.750%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.587%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.752%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Revenue:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;542,690,346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;519,337,271&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;569,939,756&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Germany&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;234,994,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;228,652,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;296,276,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Japan&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;211,417,475&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;216,100,530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;225,577,146&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Mexico&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;111,761,245&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;127,157,684&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;160,967,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other Countries&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;596,324,417&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;556,949,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;557,775,114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,981,895&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;39,991,262&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48,360,519&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,731,169,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,688,189,405&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,858,897,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Income (Loss) from Operations:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;414,185,075&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;393,979,860&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;473,546,112&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,403,097)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,576,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,991,492&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;409,781,978&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;399,556,092&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;488,537,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,495,298,453&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,436,374,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,463,030,286&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,760,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,317,668&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,000,669&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Corporate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;601,331,969&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;728,248,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;689,772,238&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,131,391,166&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,197,941,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,168,803,193&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Depreciation&#160;&amp;amp; Amortization:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;92,516,347&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;97,530,191&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;97,520,972&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;913,451&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;689,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;481,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Corporate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,682,221&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,519,815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,700,141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;99,112,019&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;104,739,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;104,702,974&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Capital Expenditures:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;58,415,887&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,926,686&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;63,537,512&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,467,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,470,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,704,045&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Corporate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,951,198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,309,150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19,338,698&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;68,835,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;51,706,541&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;84,580,255&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i375582fc075a47e9be379de861bd1eb6_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzMtMS0xLTEtMjUwNTE_4d540a7a-bc6c-45a7-853c-a5ed797c9427"
      unitRef="usd">542690346</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5c81e7288c59458da1da33b433cf10f4_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzMtMy0xLTEtMjUwNTE_340e8d5e-f10a-4686-954c-eb1f06c00611"
      unitRef="usd">519337271</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i931524aa51f5492e8dfd6ee546096afb_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzMtNS0xLTEtMjUwNTE_22962628-25c1-4d6b-a80c-9824de8a78be"
      unitRef="usd">569939756</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i368b62bbf85e4c3b81aa0cbd9c815cab_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzQtMS0xLTEtMjUwNTE_e199dcbc-421e-4453-89ab-bf846842cc06"
      unitRef="usd">234994551</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2eab7ef41e414bf1997fa93a36582942_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzQtMy0xLTEtMjUwNTE_59eb3886-2310-429e-b57b-98eaf7ea8db7"
      unitRef="usd">228652827</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i68de3d7b23424a458730a60c90dd5cb1_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzQtNS0xLTEtMjUwNTE_ec55c9f5-9f4c-4cdd-a453-ceea75ff9064"
      unitRef="usd">296276971</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7c140f01c8ad453e8b53281fea08fe8c_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzUtMS0xLTEtMjUwNTE_d621f699-50a3-4f47-b6b0-96aea94f62cc"
      unitRef="usd">211417475</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8eddd5f96c7e47c283d969e97dc4e953_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzUtMy0xLTEtMjUwNTE_851f0777-1359-406f-bdca-92755d24d9ce"
      unitRef="usd">216100530</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if300994d55ce46b0b2b596d9cd6558d6_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzUtNS0xLTEtMjUwNTE_60056584-d20d-496c-9e42-aa57ca7a06b3"
      unitRef="usd">225577146</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i93a996ff19c647418e31955b346c65ae_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzYtMS0xLTEtMjUwNTE_a436c27f-3edf-4521-9349-3d1dbf551aed"
      unitRef="usd">111761245</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="idf33fa24dfd74ec8b67cd1bbf627f0b4_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzYtMy0xLTEtMjUwNTE_add62d34-5988-4081-9b1c-b26cb5e076f3"
      unitRef="usd">127157684</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ibc46603b18fc44a79149b013291135f1_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzYtNS0xLTEtMjUwNTE_fdc71df0-6d01-46d0-a1dd-dbde78fb2687"
      unitRef="usd">160967900</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if9e41c28c06e4cf5b6ca515e939211c7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzctMS0xLTEtMjUwNTE_7221d293-f4f4-4063-a87e-07154c1dc6ca"
      unitRef="usd">596324417</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i77c349bdfb3844c596b56f607308719c_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzctMy0xLTEtMjUwNTE_4cb7181e-a392-4c91-bd41-6de25d184a9b"
      unitRef="usd">556949831</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i4d315a66dc2242b48733c6cc972caa76_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzctNS0xLTEtMjUwNTE_a3a4eb0f-e191-4485-8d64-1e146530e8a0"
      unitRef="usd">557775114</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i45d4f8f58098417284290b11e12bcdea_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzgtMS0xLTEtMjUwNTE_808c6d9f-1e86-4138-b009-963879f65596"
      unitRef="usd">33981895</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i03bd0ca3092d40f2b11186fbfb3a4941_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzgtMy0xLTEtMjUwNTE_f426e65c-71e8-4098-a131-1a322ea61b67"
      unitRef="usd">39991262</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7ca088f38bff4b439b03f33d84078f3b_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzgtNS0xLTEtMjUwNTE_e69c8051-a6fb-4652-ae54-13748725a610"
      unitRef="usd">48360519</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzktMS0xLTEtMjUwNTE_f8798eba-3f5c-4b93-aaf1-46cab1727221"
      unitRef="usd">1731169929</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzktMy0xLTEtMjUwNTE_c38d21b8-fbe1-461a-98ad-9f14bd8f6d77"
      unitRef="usd">1688189405</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzktNS0xLTEtMjUwNTE_9d751fe3-6a06-4e91-a0a2-f6502d215c19"
      unitRef="usd">1858897406</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:OperatingIncomeLoss
      contextRef="i26efd9ddd3e84cf9a2a226a7a8e528f1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzExLTEtMS0xLTI1MDUx_94732e44-5594-4146-a708-783e3818ef30"
      unitRef="usd">414185075</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i63be760ae4bc409d9e673db0b41b33eb_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzExLTMtMS0xLTI1MDUx_27c6e6fe-7ca5-416c-9604-38158cef47f3"
      unitRef="usd">393979860</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="icd4ccb61c0604698bf592f29f77c4e97_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzExLTUtMS0xLTI1MDUx_2107d516-6ec9-44de-9c0a-3d2b03b91c5e"
      unitRef="usd">473546112</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i45d4f8f58098417284290b11e12bcdea_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzEyLTEtMS0xLTI1MDUx_bf6d9562-1669-40a2-a776-705739711da3"
      unitRef="usd">-4403097</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i03bd0ca3092d40f2b11186fbfb3a4941_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzEyLTMtMS0xLTI1MDUx_e17d6581-719a-441c-88a0-494e05637544"
      unitRef="usd">5576232</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i7ca088f38bff4b439b03f33d84078f3b_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzEyLTUtMS0xLTI1MDUx_16e93b72-115b-4154-bc5a-e044d2149e59"
      unitRef="usd">14991492</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzEzLTEtMS0xLTI1MDUx_aeebba1b-b12c-439d-9e64-18c0be4339a6"
      unitRef="usd">409781978</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzEzLTMtMS0xLTI1MDUx_295d11da-d46e-4029-8319-24f7e24f3ede"
      unitRef="usd">399556092</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzEzLTUtMS0xLTI1MDUx_11638e62-435e-4e16-adca-e01123428ee5"
      unitRef="usd">488537604</us-gaap:OperatingIncomeLoss>
    <us-gaap:Assets
      contextRef="id849d52975ec4155ad311d6396fe460a_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE1LTEtMS0xLTI1MDUx_ee160750-0c57-4751-a66f-621e7578fec2"
      unitRef="usd">1495298453</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i3935e7c893d44dcfbfcbcd2f4df7d4e6_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE1LTMtMS0xLTI1MDUx_3dd3d0ea-9869-4023-a75d-e73a1265487f"
      unitRef="usd">1436374596</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="ia238ccb74a1a49148c213ffe23233b16_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE1LTUtMS0xLTI1MDUx_977e5efd-1bfe-43c6-8cb6-0743856631bb"
      unitRef="usd">1463030286</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i64bb91a655e545268c801e108c574f0a_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE2LTEtMS0xLTI1MDUx_5c64da1f-d300-42e6-b8e7-1503256177be"
      unitRef="usd">34760744</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i9852398d40bc421d86d77f5f63c8c435_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE2LTMtMS0xLTI1MDUx_51e74ce5-56e7-4490-99ec-0bf648388e79"
      unitRef="usd">33317668</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i9cd3d22801324e1092f04598a5c3fac3_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE2LTUtMS0xLTI1MDUx_cfbeec30-3d4f-4ce9-97a5-92afc548f452"
      unitRef="usd">16000669</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="ifee2349dbf7a49949cda3c9ca14eccfe_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE3LTEtMS0xLTI1MDUx_da3414f5-fa45-4374-96ee-a85912f70820"
      unitRef="usd">601331969</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i932339cf8e864b73af3a3530f5f5dced_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE3LTMtMS0xLTI1MDUx_2c9be87d-0adf-49ce-a189-dbeaa165e51c"
      unitRef="usd">728248906</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="ie2da3cbd35f64758a03b245c73a17dfb_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE3LTUtMS0xLTI1MDUx_ed47e061-8e33-415f-93e1-fe04d319fd5d"
      unitRef="usd">689772238</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE4LTEtMS0xLTI1MDUx_932865cb-6a20-4a1f-aaf3-7519c07461d0"
      unitRef="usd">2131391166</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE4LTMtMS0xLTI1MDUx_ba8b08d8-cfe7-40a7-bdd7-e70e03d8c83c"
      unitRef="usd">2197941170</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzE4LTUtMS0xLTI1MDUx_86288756-a8df-4a70-8f4d-9b325829322c"
      unitRef="usd">2168803193</us-gaap:Assets>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="icec7a780081b414da4fe8f6e1271ef7c_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIwLTEtMS0xLTI1MDUx_9b157491-b4bb-465f-b365-5dc2770fc6b9"
      unitRef="usd">92516347</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i65ee52ecd72c4f7aa3bedd4b354edcab_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIwLTMtMS0xLTI1MDUx_484fd4aa-535d-4698-aa58-80b36df6a029"
      unitRef="usd">97530191</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i74ace3e6db444dae8fff218a02cb1c94_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIwLTUtMS0xLTI1MDUx_8b05945e-ae1b-4316-b22d-91f6c7dcd594"
      unitRef="usd">97520972</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i8c2f7b5d5a014efcb14be5c5d23f76ef_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIxLTEtMS0xLTI1MDUx_1385341d-0748-458b-b9cc-62dae6b49068"
      unitRef="usd">913451</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i7ece8d4dfa614ab684fb9a67c9ef9427_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIxLTMtMS0xLTI1MDUx_2bdd32d8-0a9e-48a4-9c71-5d0ea6d9fca6"
      unitRef="usd">689894</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i494569dd81684a419ebd672af1e06638_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIxLTUtMS0xLTI1MDUx_5bd73ee5-1d44-4b42-b989-0ce4d4220d02"
      unitRef="usd">481861</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i06091255a7564ff29dd6922fa07b2fb4_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIyLTEtMS0xLTI1MDUx_1c274245-f00d-45c6-89c6-544697715740"
      unitRef="usd">5682221</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="id3f9682d07df458bbdef89d50a75a66a_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIyLTMtMS0xLTI1MDUx_6b647896-5ddd-40ce-994b-8b46e037ab15"
      unitRef="usd">6519815</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="ia54569a74884464ca31e87b36f872755_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIyLTUtMS0xLTI1MDUx_c28d6717-61d4-41d8-87db-ca17feaedf23"
      unitRef="usd">6700141</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIzLTEtMS0xLTI1MDUx_60280027-b074-4b6f-8185-a90dbcf45167"
      unitRef="usd">99112019</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIzLTMtMS0xLTI1MDUx_2c8cb3d4-646a-4611-aae8-b829b6251950"
      unitRef="usd">104739900</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzIzLTUtMS0xLTI1MDUx_96d49f73-650e-4bc2-baff-6b520fbf07c6"
      unitRef="usd">104702974</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="icec7a780081b414da4fe8f6e1271ef7c_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI1LTEtMS0xLTI1MDUx_c8da3c86-c984-4c9e-bbe9-2eb35ec22964"
      unitRef="usd">58415887</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i65ee52ecd72c4f7aa3bedd4b354edcab_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI1LTMtMS0xLTI1MDUx_9138afba-952a-421f-958d-d19e1e190520"
      unitRef="usd">34926686</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i74ace3e6db444dae8fff218a02cb1c94_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI1LTUtMS0xLTI1MDUx_21251cd8-7bdc-4ec5-9674-90b394c83b06"
      unitRef="usd">63537512</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i8c2f7b5d5a014efcb14be5c5d23f76ef_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI2LTEtMS0xLTI1MDUx_ef74f8f9-1f17-47ae-9170-aee5bca46eff"
      unitRef="usd">1467962</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i7ece8d4dfa614ab684fb9a67c9ef9427_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI2LTMtMS0xLTI1MDUx_aae76484-4d30-4913-8633-6bb438191917"
      unitRef="usd">1470705</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i494569dd81684a419ebd672af1e06638_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI2LTUtMS0xLTI1MDUx_fda8494c-cc8e-445e-817d-12d7b4567c45"
      unitRef="usd">1704045</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i06091255a7564ff29dd6922fa07b2fb4_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI3LTEtMS0xLTI1MDUx_832b5b92-9aa9-46aa-8823-76d9f6e29fa5"
      unitRef="usd">8951198</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="id3f9682d07df458bbdef89d50a75a66a_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI3LTMtMS0xLTI1MDUx_e723f229-3b61-4eaf-85d0-40b5f63a1f1e"
      unitRef="usd">15309150</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="ia54569a74884464ca31e87b36f872755_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI3LTUtMS0xLTI1MDUx_6affa4fc-4740-47e8-80f1-b1d616fa2b12"
      unitRef="usd">19338698</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI4LTEtMS0xLTI1MDUx_a3c19a5a-c9ce-4e10-8598-b73601d5ec1c"
      unitRef="usd">68835047</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI4LTMtMS0xLTI1MDUx_b51ad52d-673a-4af8-b255-9c4f84e6ddea"
      unitRef="usd">51706541</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo0MTQ0MTRkOGY4YTQ0NjM3OTIwMDA2MDQ4NzJiZDdiMC90YWJsZXJhbmdlOjQxNDQxNGQ4ZjhhNDQ2Mzc5MjAwMDYwNDg3MmJkN2IwXzI4LTUtMS0xLTI1MDUx_e147558e-5bfa-427d-acd5-9bb3dc9c7d8d"
      unitRef="usd">84580255</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90ZXh0cmVnaW9uOjJlY2NhNDJjNGZlMTQxYzJiMzBiOTA2Y2QzOGViZDllXzE3ODc_fa5dc0b9-7a4a-40f2-bd4f-a37bdc7e4ead">Other includes Dimmable Aircraft Windows, Fire Protection Products, and Nanofiber.  Major product line revenues included within the Automotive Products segment are as follows:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.855%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.723%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.723%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.586%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.727%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Automotive Mirrors&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,563,424,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,520,628,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,638,600,272&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:18pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt; Modules*&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;133,763,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;127,569,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;171,936,615&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,697,188,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,648,198,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,810,536,887&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other Products Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,981,895&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;39,991,262&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48,360,519&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,731,169,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,688,189,405&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,858,897,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;*Excludes HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt; revenue integrated into automotive mirrors.</us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i228ca5ea38194a518911ce8a22c4fe0e_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzItMS0xLTEtMjUwNTE_fed750c2-98f8-432a-8888-36eb7ee4561b"
      unitRef="usd">1563424443</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iafa822b0879346e09411b57ed967ef87_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzItMy0xLTEtMjUwNTE_e16614cb-82d4-4e32-91e1-bf99d477998e"
      unitRef="usd">1520628604</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ica8b0828344b409a980944d4fc91690d_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzItNS0xLTEtMjUwNTE_3b19b2f8-1df5-4fd1-8e8a-42aef2dd8723"
      unitRef="usd">1638600272</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ida081d3e00344bd5b38db6743c371f86_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzMtMS0xLTEtMjUwNTE_ddfc8ae2-9a36-4e02-9466-e88c34672fd8"
      unitRef="usd">133763591</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie47200f6939b46a29728cfac6ab980ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzMtMy0xLTEtMjUwNTE_0f162170-127e-44b6-a45d-95775919fa0e"
      unitRef="usd">127569539</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i046b90d36e434086a8d470826711159e_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzMtNS0xLTEtMjUwNTE_53d5b189-d43b-4c3e-92a8-5fc43ab2a730"
      unitRef="usd">171936615</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i26efd9ddd3e84cf9a2a226a7a8e528f1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzQtMS0xLTEtMjUwNTE_4de2c382-97e5-4b12-a79a-326cc21e1e63"
      unitRef="usd">1697188034</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i63be760ae4bc409d9e673db0b41b33eb_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzQtMy0xLTEtMjUwNTE_eaa17f79-b903-4fe3-8307-0a3f1b99bc4e"
      unitRef="usd">1648198143</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="icd4ccb61c0604698bf592f29f77c4e97_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzQtNS0xLTEtMjUwNTE_82c2c589-e42c-4867-a2c5-1f7bdb6c1e35"
      unitRef="usd">1810536887</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iaf032aa8c2e646c0b007aa273337315b_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzgtMS0xLTEtMjUwNTE_d25e5b26-2191-48b1-95ec-aec84b08f616"
      unitRef="usd">33981895</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iddec73fe214a484899a21df7777df784_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzgtMy0xLTEtMjUwNTE_9d10220a-b45e-4556-bf02-82e0da0fc38d"
      unitRef="usd">39991262</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib3085a3fad604e3c88de5cbb5f63fdcc_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzgtNS0xLTEtMjUwNTE_9a6747e9-a0a5-493b-ba75-05e5a054e8ae"
      unitRef="usd">48360519</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzEwLTEtMS0xLTI1MDUx_ee447dd6-82d8-45cc-965d-fda74855d390"
      unitRef="usd">1731169929</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzEwLTMtMS0xLTI1MDUx_57a483b6-f73a-4eec-8cd5-a435d75ca4ba"
      unitRef="usd">1688189405</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo1ODBmMjQ3ZmRkYmE0ZDllODU0ZTc4Njc2NDVhMGE4Yi90YWJsZXJhbmdlOjU4MGYyNDdmZGRiYTRkOWU4NTRlNzg2NzY0NWEwYThiXzEwLTUtMS0xLTI1MDUx_9d86f860-8c62-4928-be9e-5cab4bd942a8"
      unitRef="usd">1858897406</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <gntx:PercentageNetSalesInvoicedAndPaidInForeignCurrencies
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90ZXh0cmVnaW9uOjJlY2NhNDJjNGZlMTQxYzJiMzBiOTA2Y2QzOGViZDllXzE0NTE_1bf35e89-ae67-4e3e-8bd6-11a76631a503"
      unitRef="number">0.08</gntx:PercentageNetSalesInvoicedAndPaidInForeignCurrencies>
    <gntx:PercentageNetSalesInvoicedAndPaidInForeignCurrencies
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90ZXh0cmVnaW9uOjJlY2NhNDJjNGZlMTQxYzJiMzBiOTA2Y2QzOGViZDllXzE0NTU_b007eb91-6cbc-4934-9371-9ef9948197bb"
      unitRef="number">0.07</gntx:PercentageNetSalesInvoicedAndPaidInForeignCurrencies>
    <gntx:PercentageNetSalesInvoicedAndPaidInForeignCurrencies
      contextRef="i58dd0aec540949b08f1ec4b51445e1ed_I20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90ZXh0cmVnaW9uOjJlY2NhNDJjNGZlMTQxYzJiMzBiOTA2Y2QzOGViZDllXzE0NjI_46272687-c9e9-42fc-85bd-66fdae4714b0"
      unitRef="number">0.07</gntx:PercentageNetSalesInvoicedAndPaidInForeignCurrencies>
    <us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90ZXh0cmVnaW9uOjJlY2NhNDJjNGZlMTQxYzJiMzBiOTA2Y2QzOGViZDllXzE3OTI_991f0703-5d88-4b18-9c2f-6b23c6b1074b">&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2021, the Company had three automotive customers (including direct sales to OEM customers and sales through their Tier 1 suppliers), which individually accounted for 10% or more of net sales as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:4pt;margin-top:9pt;padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.543%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:29.073%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.648%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.648%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.589%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.653%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Toyota Motor Company&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Volkswagen Group&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;General Motors&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;           &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock>
    <gntx:NumberOfCustomersWhichIndividuallyAccountedFor10PercentOrMoreOfNetSales
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90ZXh0cmVnaW9uOjJlY2NhNDJjNGZlMTQxYzJiMzBiOTA2Y2QzOGViZDllXzE1NzU_3b397529-b1c8-450d-aff9-810a54b308fe"
      unitRef="automotivecustomer">3</gntx:NumberOfCustomersWhichIndividuallyAccountedFor10PercentOrMoreOfNetSales>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i962a6aa045e14548aaaff46bbfa4c1e0_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo2YjFhYTQwYjUzMmE0NjUxYWVlNzBlNWZiNTEzMTY1NC90YWJsZXJhbmdlOjZiMWFhNDBiNTMyYTQ2NTFhZWU3MGU1ZmI1MTMxNjU0XzEtMS0xLTEtMzA2Njc_7fc0ded9-5430-47ee-9cfe-0883d65bd838"
      unitRef="number">0.15</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i090c576ce1ed4da5bb0e81095ef1caa7_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo2YjFhYTQwYjUzMmE0NjUxYWVlNzBlNWZiNTEzMTY1NC90YWJsZXJhbmdlOjZiMWFhNDBiNTMyYTQ2NTFhZWU3MGU1ZmI1MTMxNjU0XzEtMy0xLTEtMzA2NzA_7d7f3ba3-d237-4a55-a219-67382c7b2aa0"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="icb3d3f7b811642c78789abb163a0f6c0_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo2YjFhYTQwYjUzMmE0NjUxYWVlNzBlNWZiNTEzMTY1NC90YWJsZXJhbmdlOjZiMWFhNDBiNTMyYTQ2NTFhZWU3MGU1ZmI1MTMxNjU0XzEtNS0xLTEtMzA2NzI_2ac391cf-ee90-4724-b78d-c97555ff2755"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i81c598ce4ba14a97bbda5fcf3ae91901_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo2YjFhYTQwYjUzMmE0NjUxYWVlNzBlNWZiNTEzMTY1NC90YWJsZXJhbmdlOjZiMWFhNDBiNTMyYTQ2NTFhZWU3MGU1ZmI1MTMxNjU0XzEtMS0xLTEtMjUwNTE_c69cc289-a47c-45da-9f9b-88071213a4d3"
      unitRef="number">0.14</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="id31e47e68b9049f796ebad91a6066e69_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo2YjFhYTQwYjUzMmE0NjUxYWVlNzBlNWZiNTEzMTY1NC90YWJsZXJhbmdlOjZiMWFhNDBiNTMyYTQ2NTFhZWU3MGU1ZmI1MTMxNjU0XzEtMy0xLTEtMjUwNTE_ad779199-9cbd-44b0-9e6c-d85c4422d2a9"
      unitRef="number">0.14</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ic456a0446fff4fbeb389fe7761cb2865_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo2YjFhYTQwYjUzMmE0NjUxYWVlNzBlNWZiNTEzMTY1NC90YWJsZXJhbmdlOjZiMWFhNDBiNTMyYTQ2NTFhZWU3MGU1ZmI1MTMxNjU0XzEtNS0xLTEtMjUwNTE_00840b58-ae6f-457b-8a6b-29df3eb71a31"
      unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="iac88b514273a4335b7320159c64edd02_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo2YjFhYTQwYjUzMmE0NjUxYWVlNzBlNWZiNTEzMTY1NC90YWJsZXJhbmdlOjZiMWFhNDBiNTMyYTQ2NTFhZWU3MGU1ZmI1MTMxNjU0XzItMS0xLTEtMjUwNTE_2e5ef335-9867-49a5-8b06-4df6a825e8f6"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ic309a9d3ad6e4d93b3a75c2b52992bdb_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo2YjFhYTQwYjUzMmE0NjUxYWVlNzBlNWZiNTEzMTY1NC90YWJsZXJhbmdlOjZiMWFhNDBiNTMyYTQ2NTFhZWU3MGU1ZmI1MTMxNjU0XzItMy0xLTEtMjUwNTE_66077a00-1f2a-495b-a87c-b4e0ee4eb1a7"
      unitRef="number">0.14</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i4dc2c13d9ab04df38403e1cdff79ccc2_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTQvZnJhZzoyZWNjYTQyYzRmZTE0MWMyYjMwYjkwNmNkMzhlYmQ5ZS90YWJsZTo2YjFhYTQwYjUzMmE0NjUxYWVlNzBlNWZiNTEzMTY1NC90YWJsZXJhbmdlOjZiMWFhNDBiNTMyYTQ2NTFhZWU3MGU1ZmI1MTMxNjU0XzItNS0xLTEtMjUwNTE_2179837f-210c-430b-a0c9-3c9e4a423af7"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:QuarterlyFinancialInformationTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTcvZnJhZzo3ODE1ZTE2NzgwNDM0ZjljYmNlZjIzYjQ4MWZlZjE1My90ZXh0cmVnaW9uOjc4MTVlMTY3ODA0MzRmOWNiY2VmMjNiNDgxZmVmMTUzXzIyMA_11694449-c505-4ee9-b713-c915a0d834f9">QUARTERLY FINANCIAL INFORMATION (UNAUDITED)&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth selected financial information for all of the quarters during the years ended December&#160;31, 2021 and 2020 (in thousands, except per share data):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;padding-left:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.105%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:23.185%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.265%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.312%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.947%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.312%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.164%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="48" style="border-bottom:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;First&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Second&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Third&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fourth&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Net&#160;Sales&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;483,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;453,762&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;428,005&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;229,926&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;399,599&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;474,639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;419,841&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;529,864&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Gross&#160;Profit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;183,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;156,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;151,597&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;43,945&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;140,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;188,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;143,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;216,675&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Operating&#160;Income (Loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;133,734&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;105,027&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;99,925&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(6,738)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;88,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;138,853&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;87,959&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;162,414&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Net Income (Loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;113,451&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;89,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;86,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2,374)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;76,661&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;117,093&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;84,179&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;143,339&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Earnings (Loss) Per Share (Basic)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:400;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.47&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(0.01)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.32&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.48&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Earnings (Loss) Per Share (Diluted)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:400;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(0.01)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.32&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.48&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.35&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="48" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Basic and diluted earnings (loss) per share are computed independently for each quarter presented.&#160; Therefore the sum of quarterly basic and diluted per share information may not equal annual basis and diluted earnings per share.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:QuarterlyFinancialInformationTextBlock>
    <us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNTcvZnJhZzo3ODE1ZTE2NzgwNDM0ZjljYmNlZjIzYjQ4MWZlZjE1My90ZXh0cmVnaW9uOjc4MTVlMTY3ODA0MzRmOWNiY2VmMjNiNDgxZmVmMTUzXzIyMQ_af89b9b6-6d87-40c1-8202-d2990b4bb970">&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth selected financial information for all of the quarters during the years ended December&#160;31, 2021 and 2020 (in thousands, except per share data):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;padding-left:36pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.105%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:23.185%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.265%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.312%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.947%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.312%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.593%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.164%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="48" style="border-bottom:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;First&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Second&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Third&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fourth&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Net&#160;Sales&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;483,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;453,762&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;428,005&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;229,926&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;399,599&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;474,639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;419,841&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;529,864&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Gross&#160;Profit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;183,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;156,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;151,597&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;43,945&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;140,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;188,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;143,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;216,675&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Operating&#160;Income (Loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;133,734&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;105,027&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;99,925&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(6,738)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;88,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;138,853&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;87,959&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;162,414&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Net Income (Loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;113,451&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;89,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;86,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2,374)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;76,661&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;117,093&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;84,179&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;143,339&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Earnings (Loss) Per Share (Basic)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:400;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.47&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(0.01)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.32&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.48&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Earnings (Loss) Per Share (Diluted)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:400;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(0.01)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.32&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.48&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.35&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="48" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Basic and diluted earnings (loss) per share are computed independently for each quarter presented.&#160; Therefore the sum of quarterly basic and diluted per share information may not equal annual basis and diluted earnings per share.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock>
    <us-gaap:ComprehensiveIncomeNoteTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90ZXh0cmVnaW9uOjM3NDE3YWNhZjAxMzRjZmFiMDU5MzZjYzUyYjg5NjljXzcwMA_971919c6-2f22-4430-9497-4bb3d204b8ad">COMPREHENSIVE INCOME&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Comprehensive income reflects the change in equity of a business enterprise during a period from transactions and other events and circumstances from non-owner sources. For the Company, comprehensive income represents net income adjusted for unrealized gains and losses on certain investments and foreign currency translation adjustments.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:56.604%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.950%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.215%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.950%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.529%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.952%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;For the Years ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign currency translation adjustments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at beginning of period&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;769,045&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,384,589)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,674,887)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other comprehensive income (loss) before reclassifications&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;151,544&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,153,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(709,702)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net current-period change&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;151,544&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,153,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(709,702)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at end of period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;920,589&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;769,045&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,384,589)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unrealized gains (losses) on available-for-sale securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at beginning of period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,082,007&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,095,486&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;74,549&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other comprehensive income before reclassifications&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,228,434)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,644,459&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,403,521&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Amounts reclassified from accumulated other comprehensive income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(846,918)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,657,938)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(382,584)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net current-period change&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,075,352)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,986,521&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,020,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at end of period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,006,655&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,082,007&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,095,486&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accumulated other comprehensive (loss) income, end of period&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,927,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,851,052&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,289,103)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:22.5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;     All amounts are shown net of tax.  Amounts in parentheses indicate debits.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:22.5pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:22.5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents details of reclassifications out of accumulated other comprehensive income for the twelve months ended December&#160;31, 2021, 2020 and 2019:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;padding-left:22.5pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:95.467%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:31.212%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.871%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.304%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.484%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.304%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.178%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.304%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.025%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:24.018%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Details about Accumulated Other Comprehensive Income Components &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="border-bottom:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Affected Line item in the Statement of Consolidated Income&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;For the Years ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unrealized gains on available-for-sale debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Realized gain on sale of securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,072,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,098,656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;484,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other income, net&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(225,130)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(440,718)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(101,699)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for Income Taxes&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total reclassifications for the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;846,918&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,657,938&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;382,584&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net of tax&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ComprehensiveIncomeNoteTextBlock>
    <us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90ZXh0cmVnaW9uOjM3NDE3YWNhZjAxMzRjZmFiMDU5MzZjYzUyYjg5NjljXzY5Ng_011b121f-088e-4d28-bcab-45602cba0479">&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:56.604%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.950%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.215%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.950%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.529%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.952%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;For the Years ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign currency translation adjustments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at beginning of period&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;769,045&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,384,589)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,674,887)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other comprehensive income (loss) before reclassifications&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;151,544&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,153,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(709,702)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net current-period change&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;151,544&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,153,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(709,702)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at end of period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;920,589&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;769,045&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,384,589)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unrealized gains (losses) on available-for-sale securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at beginning of period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,082,007&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,095,486&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;74,549&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other comprehensive income before reclassifications&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,228,434)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,644,459&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,403,521&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Amounts reclassified from accumulated other comprehensive income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(846,918)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,657,938)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(382,584)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net current-period change&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,075,352)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,986,521&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,020,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at end of period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,006,655&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,082,007&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,095,486&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accumulated other comprehensive (loss) income, end of period&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,927,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,851,052&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,289,103)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock>
    <us-gaap:StockholdersEquity
      contextRef="i86ae80d7463a483b8fc77aa1dae652b2_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzMtMS0xLTEtMjUwNTE_e23bda94-1273-460a-91e2-35730c7393cd"
      unitRef="usd">769045</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i98c8b2ae66e44ad38255493e7f3c6afe_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzMtMy0xLTEtMjUwNTE_f6e553a4-5f9a-4e2d-91ec-b2c4724a8a52"
      unitRef="usd">-2384589</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i09800ff36e9d43c9bdf2fdd0b1085c06_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzMtNS0xLTEtMjUwNTE_f0196fcd-e1ce-49f7-ad27-8800cc97a37f"
      unitRef="usd">-1674887</us-gaap:StockholdersEquity>
    <us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent
      contextRef="i69ad1b6029bd46b3adf5499da91847d0_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzQtMS0xLTEtMjUwNTE_2dde2b0e-192a-4d30-9bec-a9716ebc9142"
      unitRef="usd">151544</us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent>
    <us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent
      contextRef="i7b8ca2df2eed4b53aa7d75ad464b16d9_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzQtMy0xLTEtMjUwNTE_cf64b6bc-1a75-45f0-8aa6-3caa19f1453f"
      unitRef="usd">3153634</us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent>
    <us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent
      contextRef="i106a6718324a40c092977078c57ba7ab_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzQtNS0xLTEtMjUwNTE_bbde3376-0357-4d06-ae38-616e410ab362"
      unitRef="usd">-709702</us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i69ad1b6029bd46b3adf5499da91847d0_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzYtMS0xLTEtMjUwNTE_cf64850e-b87c-4acd-b321-44284580a204"
      unitRef="usd">151544</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i7b8ca2df2eed4b53aa7d75ad464b16d9_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzYtMy0xLTEtMjUwNTE_8ff0cd0b-bdad-43b0-a357-984e786a0bf6"
      unitRef="usd">3153634</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i106a6718324a40c092977078c57ba7ab_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzYtNS0xLTEtMjUwNTE_e9091803-f6cb-439d-8f41-0da8c05cbb26"
      unitRef="usd">-709702</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:StockholdersEquity
      contextRef="idefe55c889534e509546b145d2ba7658_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzctMS0xLTEtMjUwNTE_e2b769a7-01ff-47bd-80ca-0a948d90f6f5"
      unitRef="usd">920589</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i86ae80d7463a483b8fc77aa1dae652b2_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzctMy0xLTEtMjUwNTE_0ead61ca-5584-4b34-95a8-6ec85a08bc6d"
      unitRef="usd">769045</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i98c8b2ae66e44ad38255493e7f3c6afe_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzctNS0xLTEtMjUwNTE_196606d2-c315-488c-88f0-d8a0f9e20a97"
      unitRef="usd">-2384589</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ie883c0783d7d46ac87ebcd2e6f1432f3_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzEwLTEtMS0xLTI1MDUx_e4426969-e91f-43cb-abce-9974465e678e"
      unitRef="usd">6082007</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ib1caffda0b8546aeac324201fa9b2a47_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzEwLTMtMS0xLTI1MDUx_9be76aa8-e8c1-4c5c-b5f7-07ae7346674a"
      unitRef="usd">1095486</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id56b37c1982d48b9b7ea1f8ec55438bf_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzEwLTUtMS0xLTI1MDUx_b8360281-63fc-4267-b7dd-4cb566e801b9"
      unitRef="usd">74549</us-gaap:StockholdersEquity>
    <us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent
      contextRef="iba6284d904444e27bac69d73e455bf79_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzEyLTEtMS0xLTI1MDUx_9e296ad2-d2c0-4d69-a4aa-54d8409ace7b"
      unitRef="usd">-4228434</us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent>
    <us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent
      contextRef="i2ebb7272767347fabc6f18a94fcfdbed_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzEyLTMtMS0xLTI1MDUx_72db5532-7c34-4875-9b31-110586fa32c3"
      unitRef="usd">6644459</us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent>
    <us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent
      contextRef="i2d7ed56205014f5d83d8ca00f1255321_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzEyLTUtMS0xLTI1MDUx_3d203a65-84cb-4408-8fa7-7d43811b0a96"
      unitRef="usd">1403521</us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent>
    <us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent
      contextRef="iba6284d904444e27bac69d73e455bf79_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzEzLTEtMS0xLTI1MDUx_0f907696-d7a4-4ed6-85c2-517038755456"
      unitRef="usd">846918</us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent>
    <us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent
      contextRef="i2ebb7272767347fabc6f18a94fcfdbed_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzEzLTMtMS0xLTI1MDUx_ce544ed6-6fef-4993-bfaf-3fc1cd850ccc"
      unitRef="usd">1657938</us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent>
    <us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent
      contextRef="i2d7ed56205014f5d83d8ca00f1255321_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzEzLTUtMS0xLTI1MDUx_3dfca01c-0e9c-4ce9-9607-3573a5db6cad"
      unitRef="usd">382584</us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="iba6284d904444e27bac69d73e455bf79_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzE0LTEtMS0xLTI1MDUx_8674ae66-1ee3-40c9-946d-7b3bad089498"
      unitRef="usd">-5075352</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i2ebb7272767347fabc6f18a94fcfdbed_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzE0LTMtMS0xLTI1MDUx_d275c258-ba77-4e08-b59b-9de8557a7ebe"
      unitRef="usd">4986521</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i2d7ed56205014f5d83d8ca00f1255321_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzE0LTUtMS0xLTI1MDUx_65deb28b-bf8f-405e-9643-413d9062442c"
      unitRef="usd">1020937</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:StockholdersEquity
      contextRef="icc0f37804b0c4489ae9c70450a52b8b4_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzE1LTEtMS0xLTI1MDUx_94507feb-b98d-429d-9d9f-5f94aafb072a"
      unitRef="usd">1006655</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ie883c0783d7d46ac87ebcd2e6f1432f3_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzE1LTMtMS0xLTI1MDUx_12900f88-55cb-41ad-aee2-20da7d06b96d"
      unitRef="usd">6082007</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ib1caffda0b8546aeac324201fa9b2a47_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzE1LTUtMS0xLTI1MDUx_ae4a1aea-9040-45de-acbc-5cf527811593"
      unitRef="usd">1095486</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i402cb423a7354fcfb8c2dadfb7980d46_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzIzLTEtMS0xLTI1MDUx_71e7c77f-e44a-4ac4-824f-11448fb5d41f"
      unitRef="usd">1927244</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i089b50a3e3c74b6db4c30889ca03c153_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzIzLTMtMS0xLTI1MDUx_a7f0fedc-e147-414c-b940-bc000a469259"
      unitRef="usd">6851052</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iac6ebb2edba4414499fd70a3f6535d14_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTo2NDZmODJmYTQ3ZGM0OGI4OGFkM2U4YjU4NmVmMmM2OS90YWJsZXJhbmdlOjY0NmY4MmZhNDdkYzQ4Yjg4YWQzZThiNTg2ZWYyYzY5XzIzLTUtMS0xLTI1MDUx_69de739c-72ed-4bac-843f-ed3993dcfdfb"
      unitRef="usd">-1289103</us-gaap:StockholdersEquity>
    <us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90ZXh0cmVnaW9uOjM3NDE3YWNhZjAxMzRjZmFiMDU5MzZjYzUyYjg5NjljXzY5MA_3ad9819d-f3bd-4760-b41c-d6f98166ffd6">&lt;div style="padding-left:22.5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents details of reclassifications out of accumulated other comprehensive income for the twelve months ended December&#160;31, 2021, 2020 and 2019:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:6pt;padding-left:22.5pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:95.467%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:31.212%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.871%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.304%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.484%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.304%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.178%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.304%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.025%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:24.018%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Details about Accumulated Other Comprehensive Income Components &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="border-bottom:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Affected Line item in the Statement of Consolidated Income&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;For the Years ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unrealized gains on available-for-sale debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Realized gain on sale of securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,072,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,098,656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;484,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other income, net&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(225,130)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(440,718)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(101,699)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for Income Taxes&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total reclassifications for the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;846,918&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,657,938&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;382,584&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net of tax&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock>
    <us-gaap:DebtAndEquitySecuritiesGainLossExcludingOtherThanTemporaryImpairmentLoss
      contextRef="i12d7e45e65ec4b9db12641f2e1b07699_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTpiMmNlOGEzZDUwYzg0MGVhOGFhYzk4MjYxNGU2ZDIwNC90YWJsZXJhbmdlOmIyY2U4YTNkNTBjODQwZWE4YWFjOTgyNjE0ZTZkMjA0XzQtMi0xLTEtMjUwNTE_c2ee4058-2122-45aa-9542-e0a6cf30e306"
      unitRef="usd">1072048</us-gaap:DebtAndEquitySecuritiesGainLossExcludingOtherThanTemporaryImpairmentLoss>
    <us-gaap:DebtAndEquitySecuritiesGainLossExcludingOtherThanTemporaryImpairmentLoss
      contextRef="iafa7ea3a451d499ebf0ff7a6d5c255f9_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTpiMmNlOGEzZDUwYzg0MGVhOGFhYzk4MjYxNGU2ZDIwNC90YWJsZXJhbmdlOmIyY2U4YTNkNTBjODQwZWE4YWFjOTgyNjE0ZTZkMjA0XzQtNC0xLTEtMjUwNTE_a3352980-6c50-4255-8c52-4a166764d426"
      unitRef="usd">2098656</us-gaap:DebtAndEquitySecuritiesGainLossExcludingOtherThanTemporaryImpairmentLoss>
    <us-gaap:DebtAndEquitySecuritiesGainLossExcludingOtherThanTemporaryImpairmentLoss
      contextRef="i0d3b2121e205484781c9974529cfde1f_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTpiMmNlOGEzZDUwYzg0MGVhOGFhYzk4MjYxNGU2ZDIwNC90YWJsZXJhbmdlOmIyY2U4YTNkNTBjODQwZWE4YWFjOTgyNjE0ZTZkMjA0XzQtNi0xLTEtMjUwNTE_e957363f-18ee-4cdb-9bbf-4f9f26b77b62"
      unitRef="usd">484283</us-gaap:DebtAndEquitySecuritiesGainLossExcludingOtherThanTemporaryImpairmentLoss>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i12d7e45e65ec4b9db12641f2e1b07699_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTpiMmNlOGEzZDUwYzg0MGVhOGFhYzk4MjYxNGU2ZDIwNC90YWJsZXJhbmdlOmIyY2U4YTNkNTBjODQwZWE4YWFjOTgyNjE0ZTZkMjA0XzUtMi0xLTEtMjUwNTE_eff06e35-3e11-44c5-8c04-cc929ee0249c"
      unitRef="usd">225130</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="iafa7ea3a451d499ebf0ff7a6d5c255f9_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTpiMmNlOGEzZDUwYzg0MGVhOGFhYzk4MjYxNGU2ZDIwNC90YWJsZXJhbmdlOmIyY2U4YTNkNTBjODQwZWE4YWFjOTgyNjE0ZTZkMjA0XzUtNC0xLTEtMjUwNTE_4d7ad568-4e99-4c88-ade1-ea89a4bbc726"
      unitRef="usd">440718</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i0d3b2121e205484781c9974529cfde1f_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTpiMmNlOGEzZDUwYzg0MGVhOGFhYzk4MjYxNGU2ZDIwNC90YWJsZXJhbmdlOmIyY2U4YTNkNTBjODQwZWE4YWFjOTgyNjE0ZTZkMjA0XzUtNi0xLTEtMjUwNTE_84243c84-cb77-49d5-9199-f2b2d9a2e03d"
      unitRef="usd">101699</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="i019a32fc541340d0b982a7c48572bb6a_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTpiMmNlOGEzZDUwYzg0MGVhOGFhYzk4MjYxNGU2ZDIwNC90YWJsZXJhbmdlOmIyY2U4YTNkNTBjODQwZWE4YWFjOTgyNjE0ZTZkMjA0XzEzLTItMS0xLTI1MDUx_b4c638bf-591b-477a-8b5a-afa9cf00b20b"
      unitRef="usd">846918</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i0ca7eb43f3b244b4ad6dadbf8bacb112_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTpiMmNlOGEzZDUwYzg0MGVhOGFhYzk4MjYxNGU2ZDIwNC90YWJsZXJhbmdlOmIyY2U4YTNkNTBjODQwZWE4YWFjOTgyNjE0ZTZkMjA0XzEzLTQtMS0xLTI1MDUx_4ffd8cbb-58a1-4016-8a42-c438653d0b63"
      unitRef="usd">1657938</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i4c3676f1106b481fba4394684aa2090b_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjAvZnJhZzozNzQxN2FjYWYwMTM0Y2ZhYjA1OTM2Y2M1MmI4OTY5Yy90YWJsZTpiMmNlOGEzZDUwYzg0MGVhOGFhYzk4MjYxNGU2ZDIwNC90YWJsZXJhbmdlOmIyY2U4YTNkNTBjODQwZWE4YWFjOTgyNjE0ZTZkMjA0XzEzLTYtMS0xLTI1MDUx_f97e49d7-2efd-416f-aaf3-c0cc453b439a"
      unitRef="usd">382584</us-gaap:NetIncomeLoss>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzI0MDY_218ec5aa-64ba-46c3-a2fc-8a08dd1abf90">GOODWILL AND INTANGIBLE ASSETS&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recorded Goodwill of: $307.4 million related to the HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; acquisition in 2013; $3.7&#160;million as part of the acquisition of Vaporsens, Inc. ("Vaporsens") in the second quarter of 2020; and $0.9 million as part of the acquisition of Argil, Inc. ("Argil") during the fourth quarter of 2020. Refer to &lt;/span&gt;&lt;span style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;&lt;a href="#i1049a5e71331417da758f2299126f8c9_169" style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Note 12, "Acquisitions"&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, for further information on these acquisitions. During the third quarter of 2021, the Company made adjustments as part of the open measurement periods for Argil and for Air-Craftglass Production BV ("Air-Craftglass"), which was acquired in the third quarter of 2020. The Company reduced Goodwill recorded for Argil by $0.1&#160;million and recorded an additional $0.2&#160;million for Air-Craftglass during the third quarter of 2021. The Company also recorded $2.0&#160;million in Goodwill as part of the acquisition of Guardian Optical Technologies ("Guardian") in the first quarter of 2021.The carrying value of Goodwill as of December&#160;31, 2021 and December&#160;31, 2020 was $314.0 million and $311.9 million, respectively, as set forth in the table below.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:54pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:91.812%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:82.976%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.824%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Carrying Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;311,922,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquisitions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,951,439&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Divestitures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Impairments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;85,983&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;313,960,209&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;br/&gt;The Company reviews goodwill and IPR&amp;amp;D for impairment during the fourth quarter on an annual basis or more frequently if events or changes in circumstances indicate that goodwill might be impaired. The Company has not recognized any impairment of goodwill or IPR&amp;amp;D in the current or prior periods.  The Company continuously monitors for events and circumstances that could negatively impact the key assumptions in determining fair value thus resulting in the need for interim testing, including long-term revenue growth projections, profitability, discount rates, recent market valuations from transactions by comparable companies, volatility in the Company's market capitalization, and general industry, market and macro-economic conditions. No such events or circumstances, including the COVID-19 pandemic or electronics components shortage, that might negatively impact the key assumptions were observed in 2021 and, as such, nothing indicated the need for interim impairment testing. &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Intangible Assets and related change in carrying values are set forth in the table below as of December&#160;31, 2021 and December&#160;31, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:93.713%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:39.305%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.500%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.879%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Other Intangible Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Accumulated Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Assumed Useful Life&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trade Names and Trademarks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;52,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;52,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;180,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(123,750,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;56,250,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Existing Customer Platforms&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(35,475,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,525,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exclusive Licensing Agreement&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;96,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;96,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vaporsens In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Argil In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,278,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,278,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Air-Craftglass In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,507,778&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,507,778&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Guardian Trade Names&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,384,856&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,384,856&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Guardian In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,243,860&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,243,860&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total other identifiable intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;398,414,626&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(159,225,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;239,189,626&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:37.893%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.365%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.365%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.365%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.512%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Other Intangible Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Accumulated Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Assumed Useful Life&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trade Names and Trademarks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;52,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;52,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;180,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(108,750,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;71,250,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Existing Customer Platforms&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(31,175,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,825,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exclusive Licensing Agreement&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;96,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;96,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vaporsens In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Argil In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,278,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,278,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Air-Craftglass In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,394,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,394,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total other identifiable intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;389,673,127&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(139,925,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;249,748,127&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#faac16;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accumulated amortization on patents and intangible assets was approximately $185.7 million and $164.5 million at December&#160;31, 2021 and 2020, respectively.  Amortization expense on patents and other intangible assets was approximately $22.2 million, $22.4 million, and $22.4 million in calendar years 2021, 2020 and 2019, respectively.  At December&#160;31, 2021, patents had a weighted average amortized life of 10 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Excluding the impact of any future acquisitions, the Company anticipates amortization expense including patents and other intangible assets to be approximately $22 million for the year ended December 31, 2022, approximately $20 million for the year ended December 31, 2023, approximately $16 million for the year ended December 31, 2024, and approximately $12 million for the year ended December 31, 2025.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock>
    <us-gaap:Goodwill
      contextRef="i00729196d1664b74887e91e4f20cafc1_I20130930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzc2_81fdb084-9a78-4db7-803c-f8d1d796836e"
      unitRef="usd">307400000</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="i427fe350c9194fb0aa0d38d3eb5a4240_D20200401-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzE5MQ_ab472e2d-8cac-4183-b0dd-1188f0954e62"
      unitRef="usd">3700000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="i26f9290ec7ff4be5ade764cf82b2018b_D20201001-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzMxNQ_b572ee7e-bdcd-4ec2-8c1f-17a81c9e819a"
      unitRef="usd">900000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillPeriodIncreaseDecrease
      contextRef="i4f3b157409a2422b823d2aa561fda829_D20210701-20210930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzEwOTk1MTE2MzE1Mzk_de99d177-be09-4614-a3cb-8a2d344e134d"
      unitRef="usd">-100000</us-gaap:GoodwillPeriodIncreaseDecrease>
    <us-gaap:GoodwillPeriodIncreaseDecrease
      contextRef="i0827fd9447b44b67b339552857cca8c6_D20210701-20210930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzEwOTk1MTE2MzE1MDk_2931790d-6147-4a91-92f7-5e17088d5ece"
      unitRef="usd">200000</us-gaap:GoodwillPeriodIncreaseDecrease>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="i0f2233f4cf354001b744175a4cff7da7_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzEwOTk1MTE2MzE1MjQ_bcf377d7-b857-408a-bb29-2345f9b53ec2"
      unitRef="usd">2000000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:ScheduleOfGoodwillTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzI0MDk_5c4f561e-d57d-47a3-99f9-8683c5234cb1">The carrying value of Goodwill as of December&#160;31, 2021 and December&#160;31, 2020 was $314.0 million and $311.9 million, respectively, as set forth in the table below.&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:91.812%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:82.976%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.824%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Carrying Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;311,922,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquisitions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,951,439&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Divestitures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Impairments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;85,983&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;313,960,209&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzU0OQ_2db73e2b-b506-490a-acef-b3018a8370cf"
      unitRef="usd">314000000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzU1Ng_889e92cf-3760-465c-b48e-bdc8b16509cc"
      unitRef="usd">311900000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i6812fd7fc28348e7a957fdc33896f477_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZToyYTBjMjAyNmEzY2Y0MGQ5YjIzMTFhMjBmMGNiNjY2NS90YWJsZXJhbmdlOjJhMGMyMDI2YTNjZjQwZDliMjMxMWEyMGYwY2I2NjY1XzEtMS0xLTEtMjUwNTE_bf70cd05-2ede-436b-8545-c102bb387feb"
      unitRef="usd">311922787</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZToyYTBjMjAyNmEzY2Y0MGQ5YjIzMTFhMjBmMGNiNjY2NS90YWJsZXJhbmdlOjJhMGMyMDI2YTNjZjQwZDliMjMxMWEyMGYwY2I2NjY1XzItMS0xLTEtMjUwNTE_d7c7795b-b701-44ae-9e20-4ea4c111fd03"
      unitRef="usd">1951439</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillWrittenOffRelatedToSaleOfBusinessUnit
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZToyYTBjMjAyNmEzY2Y0MGQ5YjIzMTFhMjBmMGNiNjY2NS90YWJsZXJhbmdlOjJhMGMyMDI2YTNjZjQwZDliMjMxMWEyMGYwY2I2NjY1XzMtMS0xLTEtMjUwNTE_91c007e7-128b-4d7e-a947-c7affbd286c2"
      unitRef="usd">0</us-gaap:GoodwillWrittenOffRelatedToSaleOfBusinessUnit>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZToyYTBjMjAyNmEzY2Y0MGQ5YjIzMTFhMjBmMGNiNjY2NS90YWJsZXJhbmdlOjJhMGMyMDI2YTNjZjQwZDliMjMxMWEyMGYwY2I2NjY1XzQtMS0xLTEtMjUwNTE_ce8bc07b-dc77-4c7b-ab76-0cd9dab7feef"
      unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillOtherIncreaseDecrease
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZToyYTBjMjAyNmEzY2Y0MGQ5YjIzMTFhMjBmMGNiNjY2NS90YWJsZXJhbmdlOjJhMGMyMDI2YTNjZjQwZDliMjMxMWEyMGYwY2I2NjY1XzUtMS0xLTEtMjUwNTE_2e1f0993-95ec-48b8-a08f-141072526484"
      unitRef="usd">85983</us-gaap:GoodwillOtherIncreaseDecrease>
    <us-gaap:Goodwill
      contextRef="i5802885ac61a43489c745def8892cd9f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZToyYTBjMjAyNmEzY2Y0MGQ5YjIzMTFhMjBmMGNiNjY2NS90YWJsZXJhbmdlOjJhMGMyMDI2YTNjZjQwZDliMjMxMWEyMGYwY2I2NjY1XzYtMS0xLTEtMjUwNTE_e9b6a24b-c177-4112-b22c-fd390869f98d"
      unitRef="usd">313960209</us-gaap:Goodwill>
    <us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzI0MjM_c4015f8c-070f-4a75-8280-16d3ef1f49c3">&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Intangible Assets and related change in carrying values are set forth in the table below as of December&#160;31, 2021 and December&#160;31, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:93.713%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:39.305%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.500%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.879%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Other Intangible Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Accumulated Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Assumed Useful Life&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trade Names and Trademarks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;52,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;52,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;180,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(123,750,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;56,250,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Existing Customer Platforms&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(35,475,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,525,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exclusive Licensing Agreement&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;96,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;96,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vaporsens In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Argil In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,278,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,278,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Air-Craftglass In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,507,778&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,507,778&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Guardian Trade Names&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,384,856&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,384,856&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Guardian In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,243,860&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,243,860&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total other identifiable intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;398,414,626&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(159,225,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;239,189,626&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:37.893%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.365%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.365%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.365%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.512%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Other Intangible Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Accumulated Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Assumed Useful Life&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trade Names and Trademarks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;52,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;52,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;180,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(108,750,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;71,250,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Existing Customer Platforms&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(31,175,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,825,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exclusive Licensing Agreement&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;96,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;96,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vaporsens In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Argil In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,278,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,278,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Air-Craftglass In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,394,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,394,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total other identifiable intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;389,673,127&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(139,925,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;249,748,127&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#faac16;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i8a087335428847b6b225c8a187c7bbcf_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzEtMS0xLTEtMjUwNTE_8a89b64d-28e2-4132-ab1f-6dde683a853d"
      unitRef="usd">52000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i8a087335428847b6b225c8a187c7bbcf_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzEtMy0xLTEtMjUwNTE_e9fca147-8947-41b0-bd7e-cefb27ccd906"
      unitRef="usd">52000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="icaffd761ca874b9580433f3d1f1f8f43_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzItMS0xLTEtMjUwNTE_40d7e70d-edd5-4737-aeec-386f5abf2b25"
      unitRef="usd">180000000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="icaffd761ca874b9580433f3d1f1f8f43_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzItMi0xLTEtMjUwNTE_d55d9102-7eb5-4d78-a148-d4aea7e39acb"
      unitRef="usd">123750000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="icaffd761ca874b9580433f3d1f1f8f43_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzItMy0xLTEtMjUwNTE_b3562a1a-8092-4957-8418-73db80f9db01"
      unitRef="usd">56250000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="if07fa0208ce946538f7f7f76734f5014_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzItNC0xLTEtMjUwNTE_801a5f9d-8328-479c-97da-a858fe133883">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i87546c5d698a424385c49426b4f5b12f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzMtMS0xLTEtMjUwNTE_55e5b0af-16db-4230-b930-4513a6ae6299"
      unitRef="usd">43000000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i87546c5d698a424385c49426b4f5b12f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzMtMi0xLTEtMjUwNTE_8f03f33d-65a2-4bb4-88a7-1e37d877f018"
      unitRef="usd">35475000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i87546c5d698a424385c49426b4f5b12f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzMtMy0xLTEtMjUwNTE_e6e714d4-0e0e-4521-b97c-c5f5565af565"
      unitRef="usd">7525000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="icd456d56d7174751a9b915ee6176ff14_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzMtNC0xLTEtMjUwNTE_e8d6d0a9-9bc0-476d-b997-278559b8eff0">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="ie60bc903c5f54c83aed1403f5b76f5a8_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzQtMS0xLTEtMjUwNTE_cf3918ba-fd09-44ac-a286-063b6e044510"
      unitRef="usd">96000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="ie60bc903c5f54c83aed1403f5b76f5a8_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzQtMy0xLTEtMjUwNTE_89a22ade-cade-4926-ae71-1cf1d3c48105"
      unitRef="usd">96000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i45e9fb3f4bfd4477ac12bb93fc312d6b_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzUtMS0xLTEtMjUwNTE_996cf224-fe75-4e7f-8ee6-996d3c4b69a1"
      unitRef="usd">11000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i45e9fb3f4bfd4477ac12bb93fc312d6b_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzUtMy0xLTEtMjUwNTE_99decd47-264a-4ca6-9e83-e272bf573e5d"
      unitRef="usd">11000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i450e215e583547a7b36e257326612302_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzYtMS0xLTEtMjUwNTE_c08c7b24-d15f-4b96-954f-98912e9e450d"
      unitRef="usd">6278132</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i450e215e583547a7b36e257326612302_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzYtMy0xLTEtMjUwNTE_378c2ac5-e9fa-456b-b11e-9d5a2748751e"
      unitRef="usd">6278132</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i581be6563e2c44f5ba5194cc153f6908_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzctMS0xLTEtMjUwNTE_d8c42b07-6b29-476e-a623-0849626cfb0c"
      unitRef="usd">1507778</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i581be6563e2c44f5ba5194cc153f6908_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzctMy0xLTEtMjUwNTE_db172108-bdc0-49a9-a13f-ecdae7631491"
      unitRef="usd">1507778</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i72477e49301c4bd7b8797afdacbdf07b_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzgtMS0xLTEtMzAwMzQ_1102daf1-a248-43f0-ad13-5a839b0146d6"
      unitRef="usd">1384856</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i72477e49301c4bd7b8797afdacbdf07b_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzgtMy0xLTEtMzAwMzY_f86ccb8e-e63b-4ef6-9328-e1a4b3684875"
      unitRef="usd">1384856</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="if1c165183e644bdbbe6681b2f2420816_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzktMS0xLTEtMzAwMzQ_79df54d2-1d21-4620-8955-c4246f4e6c73"
      unitRef="usd">7243860</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="if1c165183e644bdbbe6681b2f2420816_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzktMy0xLTEtMzAwMzY_3cb7c379-3d3f-4352-999e-1bb932fce4c0"
      unitRef="usd">7243860</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill
      contextRef="ia2f02bd832b44727878b1cab1449f477_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzgtMS0xLTEtMjUwNTE_27696a0d-47aa-4a10-83c1-900cf00c6727"
      unitRef="usd">398414626</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ia2f02bd832b44727878b1cab1449f477_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzgtMi0xLTEtMjUwNTE_a6433d7f-06b2-459d-9e59-e76007f5c055"
      unitRef="usd">159225000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="ia2f02bd832b44727878b1cab1449f477_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTo0ZjRiNGU3MTcyZjY0ZWM2YmNkNDdkNjdkYjlkYzVhMy90YWJsZXJhbmdlOjRmNGI0ZTcxNzJmNjRlYzZiY2Q0N2Q2N2RiOWRjNWEzXzgtMy0xLTEtMjUwNTE_57a07af3-e262-4699-ae0c-03196653a405"
      unitRef="usd">239189626</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i4b1125435f21423a86a260cc90fa99fb_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzEtMS0xLTEtMjUwNTE_20ef77e4-0129-4329-85bc-3ed0ac38046e"
      unitRef="usd">52000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i4b1125435f21423a86a260cc90fa99fb_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzEtMy0xLTEtMjUwNTE_8ee4ffd3-ddea-4e16-833e-31b3731dcda2"
      unitRef="usd">52000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ifed79b66936840d4b20a23d84dff1d8d_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzItMS0xLTEtMjUwNTE_eb555e1e-3e08-4551-9e60-8f65f41986fb"
      unitRef="usd">180000000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ifed79b66936840d4b20a23d84dff1d8d_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzItMi0xLTEtMjUwNTE_1db5ad7f-6c83-466f-82d7-29f32b506805"
      unitRef="usd">108750000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ifed79b66936840d4b20a23d84dff1d8d_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzItMy0xLTEtMjUwNTE_53a0ddbc-19bf-4b2c-abf5-8ebf8ac2728c"
      unitRef="usd">71250000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="icf3f862370b7452baf17dee1389915e7_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzItNC0xLTEtMjUwNTE_aec61678-d96a-4eb9-95be-d72543624686">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i6b689915aa154b10bee91e40be44569a_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzMtMS0xLTEtMjUwNTE_2aa3b620-9fd0-462c-adb9-2f3b90fc417e"
      unitRef="usd">43000000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i6b689915aa154b10bee91e40be44569a_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzMtMi0xLTEtMjUwNTE_e08fc90a-6c8b-4d13-90dc-ef993cedb5c9"
      unitRef="usd">31175000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i6b689915aa154b10bee91e40be44569a_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzMtMy0xLTEtMjUwNTE_2f991839-55ca-4dc9-835d-b84568b29218"
      unitRef="usd">11825000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i7a6f5ba073534d979679c6b6fcbd1ff1_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzMtNC0xLTEtMjUwNTE_c51900f9-8db0-40d3-bff2-776ce9ad78cc">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="ibde70151901e468e9f9f40aa1cbab44e_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzQtMS0xLTEtMjUwNTE_6da20c10-07df-401a-afdd-4a532f76ae39"
      unitRef="usd">96000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="ibde70151901e468e9f9f40aa1cbab44e_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzQtMy0xLTEtMjUwNTE_33d2cf99-5ae6-4130-a51c-02d00afe09da"
      unitRef="usd">96000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i979dc9fafb604ac9a04340abbbbb8b3d_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzUtMS0xLTEtMjc2NjU_fef5b768-835d-44eb-b2f9-c2cb69626dcd"
      unitRef="usd">11000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i979dc9fafb604ac9a04340abbbbb8b3d_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzUtMy0xLTEtMjc2NjU_f549420d-00ec-477f-9232-3767ddce397a"
      unitRef="usd">11000000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i5edc48f63b1d4748829fecf153ffe516_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzYtMS0xLTEtMjc2NjU_524b8648-52db-4289-bd5d-61b67d0f0e8b"
      unitRef="usd">6278132</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i5edc48f63b1d4748829fecf153ffe516_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzYtMy0xLTEtMjc2NjU_cb99d8e3-3792-465a-ac7f-937376826fd8"
      unitRef="usd">6278132</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i163defd21a1e450db732a089f03918d2_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzctMS0xLTEtMjc2NjU_68676284-83b3-470c-b7ea-5917ed8d3284"
      unitRef="usd">1394995</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="i163defd21a1e450db732a089f03918d2_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzctMy0xLTEtMjc2NjU_f2fb2e47-e215-405d-8540-ebfb4a6fe1b0"
      unitRef="usd">1394995</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IntangibleAssetsGrossExcludingGoodwill
      contextRef="ifeace13af8654c2faf25a5ac65a8f717_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzUtMS0xLTEtMjUwNTE_f9709c61-bda3-4ab5-9fcf-6aa307f6da15"
      unitRef="usd">389673127</us-gaap:IntangibleAssetsGrossExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ifeace13af8654c2faf25a5ac65a8f717_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzUtMi0xLTEtMjUwNTE_56475f4d-a6b2-401b-b158-c06eb2056af9"
      unitRef="usd">139925000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="ifeace13af8654c2faf25a5ac65a8f717_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90YWJsZTowNWUxNzI3N2Q5MWY0ZDZkOGMxN2ZkZTMyZDUxMDQ1My90YWJsZXJhbmdlOjA1ZTE3Mjc3ZDkxZjRkNmQ4YzE3ZmRlMzJkNTEwNDUzXzUtMy0xLTEtMjUwNTE_e2be3079-293a-4da9-b0dd-a432221a4fdc"
      unitRef="usd">249748127</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="iefb2066680ed49a7ad7e18a8bdea1d16_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzE3Njc_1644f0ab-3048-4dfb-af1c-2c341da2e030"
      unitRef="usd">185700000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ifcb8db72050543898984305cf172ad26_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzE3NzQ_657565db-0adc-4d61-9d8c-7fea046d0c72"
      unitRef="usd">164500000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzE4ODQ_055f971f-26d5-4912-b57e-31effc95b3c5"
      unitRef="usd">22200000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzE4ODg_a8914aea-141b-4e70-995c-89580eafb82b"
      unitRef="usd">22400000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzE4OTY_f5f3a3ab-daad-46a0-914b-1a94bbb0802d"
      unitRef="usd">22400000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i9eda2f38ff0e46fdb4a4211396f43a7a_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzIwMDU_ec5ed1fd-32e1-4f2f-9fa1-12b7fd7f86a1">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="iefb2066680ed49a7ad7e18a8bdea1d16_I20211231"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzIyMjU_001e20d4-cb65-41fd-a63f-f3eda6e891db"
      unitRef="usd">22000000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="iefb2066680ed49a7ad7e18a8bdea1d16_I20211231"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzIyMjU_fb1cb77f-69a2-4c6a-8422-aa84c020cf87"
      unitRef="usd">22000000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="iefb2066680ed49a7ad7e18a8bdea1d16_I20211231"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzIyNTI_0d8d8d61-6acc-404a-9127-6f10637e8086"
      unitRef="usd">20000000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="iefb2066680ed49a7ad7e18a8bdea1d16_I20211231"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzIzMDc_a90df0d0-14a3-4676-89d1-bcafe8e2c85b"
      unitRef="usd">16000000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="iefb2066680ed49a7ad7e18a8bdea1d16_I20211231"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjMvZnJhZzpmNGFhMzc3ZTkyN2M0ODk5OTNhNDRiODA1MWUyMjAyMy90ZXh0cmVnaW9uOmY0YWEzNzdlOTI3YzQ4OTk5M2E0NGI4MDUxZTIyMDIzXzIzNjY_568f5832-8afb-4851-bdd6-47af2a5ae87a"
      unitRef="usd">12000000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90ZXh0cmVnaW9uOjA4NDkyZmE1ZmI2ODQ1MmI5NTBmOGFkMjNiMDhkYmE3XzY2NTU_983e358e-e55b-418a-8e97-5bdbaa47ba1c">REVENUE&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table shows the Company&#x2019;s Automotive and Other Products revenue disaggregated by geographical location for Automotive Products for the years ended December 31, 2021, 2020, and 2019:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.690%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:41.959%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.934%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.054%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.934%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:2.481%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.938%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;For the Years ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;U.S.&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;542,690,346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;519,337,271&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;569,939,756&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Germany&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;234,994,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;228,652,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;296,276,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Japan&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;211,417,475&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;216,100,530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;225,577,146&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Mexico&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;111,761,245&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;127,157,684&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;160,967,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;596,324,417&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;556,949,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;557,775,114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,697,188,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,648,198,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,810,536,887&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other Products (U.S.)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33,981,895&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,991,262&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;48,360,519&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,731,169,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,688,189,405&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,858,897,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue by geographic area may fluctuate based on many factors, including: exposure to local economic, political and labor conditions; unexpected changes in laws, regulations, trade or monetary or fiscal policy, including interest rates, foreign currency exchange rates and changes in the rate of inflation in the U.S. and other foreign countries; and tariffs, quotas, customs and other import or export restrictions and other trade barriers.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table disaggregates the Company&#x2019;s Automotive and Other revenue by major source for the years ended December 31, 2021 and 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.396%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:24.528%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:3.145%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:24.531%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;For the Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Automotive Segment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Automotive Mirrors &amp;amp; Electronics&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,563,424,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,520,628,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;HomeLink Modules*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;133,763,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;127,569,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,697,188,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,648,198,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other Segment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fire Protection Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,048,697&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,716,985&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Windows Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,914,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,274,277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nanofiber Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Other&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33,981,895&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,991,262&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="12" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;*Excludes HomeLink revenue related to HomeLink modules integrated into automotive mirrors.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue is recognized when obligations under the terms of a contract with the customer are satisfied.  Such recognition generally occurs with the transfer of control of the products at a point in time. The Company's automotive OEM contracts generally include Long Term Supply Agreements ("LTSA") entered into in the ordinary course of business and Purchase Orders ("PO") whereby the LTSA sometimes stipulates the pricing and delivery terms and is evaluated together with a PO, which identifies the quantity, timing, and the type of product to be transferred. Certain customer contracts do not always have an LTSA, in which case, the contracts are governed by the PO from the customer in conjunction with other mutually agreed upon terms and conditions.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company does not generate revenue from arrangements with multiple deliverables. Revenue is measured as the amount of consideration the Company expects to receive in exchange for transferring goods excluding revenue amounts that are transferred to third parties, such as sales, value add, and other taxes the Company collects concurrently with revenue-producing activities. The Company does not incur any incremental cost to obtain contracts. Costs are incurred to fulfill contracts with the OEM. However, such costs are accounted for under ASC 340-10, and are not treated as fulfillment costs under ASC 340-40.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline"&gt;Automotive Products Segment&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Automotive Rearview Mirrors and Electronics&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company manufactures interior electrochromic automatic-dimming rearview mirrors that darken to reduce glare and improve visibility for the driver. These electronic interior mirrors can also include additional electronic features such as compass, microphones, HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, lighting assist and driver assist forward safety camera systems, various lighting systems, various telematics systems, ITM&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; systems, and a wide variety of displays. The Company also ships interior non-automatic-dimming rearview mirrors with features. The Company&#x2019;s interior electrochromic automatic-dimming rearview mirrors also power the application of the Company&#x2019;s exterior electrochromic automatic-dimming rearview mirrors that darken to reduce glare and improve visibility for the driver. These electronic exterior mirrors typically range in size and shape per automaker specification, but also include additional features such as turn signal indicators, side blind zone indicators, and courtesy lighting. The Company also ships exterior non-automatic-dimming rearview mirrors with similar electronic features as what is available in its automatic-dimming applications. The Company manufactures other automotive electronics products both inside and outside of the rearview mirror through HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;applications in the vehicle including the rearview mirror, interior visor, overhead console, or center console.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the majority of automotive products, transfer of control and revenue recognition occurs when the Company ships the product from the manufacturing facility to the customer.  The Company generally receives payment equal to the price that applies at the time of invoice for most automotive product sales.  For any shipments of product that may be subject to retroactive price adjustments that are then being negotiated, the Company records revenue based on the Company&#x2019;s best estimate of the amount of consideration to which the entity will be entitled in exchange for transferring the promised goods to the customer.  The Company's best estimate  requires significant judgment based on historical results and expected outcomes of ongoing negotiations with customers.  The Company's approach is to consider these adjustments to the contract price as variable consideration which is estimated based on the then most likely price amount.  Payment terms on automotive part sales to customers range from 15 days to 90 days.  Estimated revenue is adjusted at the earlier of when the most likely amount of consideration expected to be received changes or when the consideration becomes fixed.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;HomeLink&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:700;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt; Modules&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company manufactures and sells HomeLink&#xae; Modules individually, as well as in combination with the automotive mirrors and other advanced features, as described above.  For the majority of automotive products, transfer of control and revenue recognition occurs when the Company ships the product from the manufacturing facility to the customer.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline"&gt;Other Segment&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Dimmable Aircraft Windows &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company supplies variable dimmable windows for the passenger compartment on the Boeing 787 Dreamliner Series of Aircraft.  For dimmable aircraft windows, transfer of control and revenue recognition occurs when the Company ships the product from the manufacturing facility to the customer. Payment terms on dimmable aircraft window sales range from 30 days to 45 days. &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Fire Protection Products &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company manufactures photoelectric smoke detectors and alarms, visual signaling alarms,  electrochemical carbon monoxide detectors and alarms, audible and visual signaling alarms, and bells and speakers for use in fire detection systems in office buildings, hotels, and other commercial and residential buildings. For fire protection parts, transfer of control and revenue recognition occurs when the Company ships the product from the manufacturing facility to the customer.  Payment terms on fire protection part sales to customers range from 30 days to 75 days.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Nanofiber&lt;/span&gt;&lt;/div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company acquired Vaporsens in early 2020, which specializes in nanofiber chemical sensing research and development.  Vaporsens is primarily involved with research and development of technology related to nanofibers sensing a variety of chemicals and/or compounds.&#x202f;Refer to&lt;/span&gt;&lt;span style="color:#faac16;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;&lt;a href="#i1049a5e71331417da758f2299126f8c9_169" style="color:#0000ff;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Note 12, "Acquisitions"&lt;/a&gt;&lt;/span&gt;, for further information.</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90ZXh0cmVnaW9uOjA4NDkyZmE1ZmI2ODQ1MmI5NTBmOGFkMjNiMDhkYmE3XzY2NTg_004bbddf-09c9-4787-80a2-8d407049d47b">&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table shows the Company&#x2019;s Automotive and Other Products revenue disaggregated by geographical location for Automotive Products for the years ended December 31, 2021, 2020, and 2019:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.690%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:41.959%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.934%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.054%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.934%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:2.481%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.938%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;For the Years ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;U.S.&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;542,690,346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;519,337,271&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;569,939,756&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Germany&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;234,994,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;228,652,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;296,276,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Japan&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;211,417,475&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;216,100,530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;225,577,146&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Mexico&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;111,761,245&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;127,157,684&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;160,967,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;596,324,417&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;556,949,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;557,775,114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,697,188,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,648,198,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,810,536,887&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other Products (U.S.)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33,981,895&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,991,262&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;48,360,519&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,731,169,929&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,688,189,405&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,858,897,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table disaggregates the Company&#x2019;s Automotive and Other revenue by major source for the years ended December 31, 2021 and 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.982%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.396%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:24.528%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:3.145%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:24.531%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;For the Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Automotive Segment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Automotive Mirrors &amp;amp; Electronics&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,563,424,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,520,628,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;HomeLink Modules*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;133,763,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;127,569,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Automotive Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,697,188,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,648,198,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other Segment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fire Protection Products&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,048,697&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,716,985&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Windows Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,914,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,274,277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nanofiber Products&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Other&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33,981,895&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,991,262&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="12" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;*Excludes HomeLink revenue related to HomeLink modules integrated into automotive mirrors.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i96210e75ae7a44e9abc7352ea9920cd1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzMtMS0xLTEtMjUwNTE_256e030c-f02b-4ea8-9e58-da2d36277ca3"
      unitRef="usd">542690346</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia0b9020730074a1381a894772f5225b1_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzMtMy0xLTEtMjUwNTE_acb63716-a7a1-47ff-b53c-fdcbc435a230"
      unitRef="usd">519337271</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i3f3bb8234baf4644a7c9c90e1db2ac30_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzMtNS0xLTEtMjUwNTE_5f9b2d4b-f887-4de3-b6e4-d634f763240c"
      unitRef="usd">569939756</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i305430042eb84e56a1aae3748b52fe75_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzQtMS0xLTEtMjUwNTE_19e7f8f2-12f4-4d2c-a610-faaab57e8f76"
      unitRef="usd">234994551</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i72fb57c4c3af42c981af4f4d8ad6669c_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzQtMy0xLTEtMjUwNTE_7e73ff20-f265-46e5-93f5-82e907d86617"
      unitRef="usd">228652827</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i047171b478ca4e278bdba14abfb930e9_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzQtNS0xLTEtMjUwNTE_27e683ed-76ec-4969-ba47-81131c69eed9"
      unitRef="usd">296276971</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib72c1108c75b41dcbcd110f44fd246eb_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzUtMS0xLTEtMjUwNTE_8be189fa-14f6-40f7-95a9-d0fe57e4a1ba"
      unitRef="usd">211417475</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9c28e2e913404fa19f389ea8f18d51a3_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzUtMy0xLTEtMjUwNTE_f93478fc-bf4d-446f-ba12-9acb239620c3"
      unitRef="usd">216100530</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8279448f17b541888587811011539364_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzUtNS0xLTEtMjUwNTE_d20266e5-da17-4c3f-9e09-5006addfeff8"
      unitRef="usd">225577146</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i999de1dc7e394b8b9e0634e3dbedacce_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzYtMS0xLTEtMjUwNTE_1833a046-131d-42c4-abb1-b0a0dc5fc2bd"
      unitRef="usd">111761245</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i345962465c314359b748d6e6b8f283d8_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzYtMy0xLTEtMjUwNTE_c44b0a36-0c7e-48f3-a57e-85d8420f91cd"
      unitRef="usd">127157684</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5bfb6ccdaa8548c38117223283acfa6e_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzYtNS0xLTEtMjUwNTE_3e613229-5be2-4e6f-ae21-e5533af753ee"
      unitRef="usd">160967900</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iae5d4de28afd40088cd176716c6e2750_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzctMS0xLTEtMjUwNTE_5e87ff04-553f-4326-b3bd-e1f4412162c7"
      unitRef="usd">596324417</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i43fc0658b84944b0b810521c45ddbec7_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzctMy0xLTEtMjUwNTE_bb0f0bc9-b059-409c-aa82-e91a54125afa"
      unitRef="usd">556949831</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i67414c44c95641848aaab611ed594292_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzctNS0xLTEtMjUwNTE_765d867c-5112-40f9-9048-3ff8ae077ee4"
      unitRef="usd">557775114</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="idb6e897cea224cff92477ec26bd928f5_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzgtMS0xLTEtMjUwNTE_4319b8b6-2926-422b-b3c1-49ebdf5741f5"
      unitRef="usd">1697188034</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i547e06d008f54d8e99e17dfb9db7eb4b_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzgtMy0xLTEtMjUwNTE_727a8f14-12cf-42db-b1f4-cf003163ae11"
      unitRef="usd">1648198143</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9ce8551ad3134eb7af01c0e55c7fe018_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzgtNS0xLTEtMjUwNTE_e4db90ad-2dbe-4605-b6e7-1c3667362e54"
      unitRef="usd">1810536887</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i401eb80a682d4f65bf6b590fe74a2d84_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzktMS0xLTEtMjUwNTE_ed3c7eb7-cab4-481b-aa20-1ea7ff91592e"
      unitRef="usd">33981895</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8a049b2d72144e94833f01bb13c268e1_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzktMy0xLTEtMjUwNTE_d5971981-14d8-466a-940b-bbdabf56a077"
      unitRef="usd">39991262</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i23b70634116d4afdae8be7eb6bc640fd_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzktNS0xLTEtMjUwNTE_450fa271-df5c-43f0-acb2-2fdb23ea5e31"
      unitRef="usd">48360519</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzEwLTEtMS0xLTI1MDUx_5dc5577e-76ff-49a0-9577-a933f395a8f0"
      unitRef="usd">1731169929</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1d0fe0d81d9c4056a8152b3e8df013ba_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzEwLTMtMS0xLTI1MDUx_d9bb9bac-7588-42d4-91ad-de0d0abc17df"
      unitRef="usd">1688189405</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i4b25ffe6950c47b4b8ea955090862b04_D20190101-20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTo2ZmRkMTA3YzhjNDY0ZmM3ODY4ZGY4MGQ5YzdhNmUwMC90YWJsZXJhbmdlOjZmZGQxMDdjOGM0NjRmYzc4NjhkZjgwZDljN2E2ZTAwXzEwLTUtMS0xLTI1MDUx_12296595-7c7b-493f-b37e-6ef50f6f3e44"
      unitRef="usd">1858897406</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie2fcf336dfc3454884aede76163eb91e_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzMtMS0xLTEtMjUwNTE_5a4c7b76-ef94-4236-ab9e-9c42c73372dd"
      unitRef="usd">1563424443</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if0a6a36f57be41a39c0f1544a448b96b_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzMtMy0xLTEtMjUwNTE_ff1d3292-44ca-4280-a6f8-b3b720f2d81d"
      unitRef="usd">1520628604</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia3e842c0b4594f8c9b2cba7f1203802d_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzQtMS0xLTEtMjUwNTE_953059f3-1439-4fe3-a1a0-cfd682574758"
      unitRef="usd">133763591</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9f44700babfe4472b4b6574d00f0320a_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzQtMy0xLTEtMjUwNTE_2a2b4cdc-4c95-4663-beb3-e1365689d0b5"
      unitRef="usd">127569539</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i0d732cba764e4d73a27229bc3a9ae148_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzUtMS0xLTEtMjUwNTE_d172f31d-4378-4841-bedf-c5d4fb7ea178"
      unitRef="usd">1697188034</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib131fb6dc8e344829a7228be2d739c74_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzUtMy0xLTEtMjUwNTE_b53d5971-ca9a-4d73-91c7-8e10b6f9c040"
      unitRef="usd">1648198143</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id6a42cd3cb514320b8a50db8321b6fb7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzgtMS0xLTEtMjUwNTE_b94de286-5558-49da-8ca2-498b31e11f8b"
      unitRef="usd">25048697</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1d586fd7fa894edcb5605c238d738e6b_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzgtMy0xLTEtMjUwNTE_dc1c5fd3-183e-43e4-872f-90b9d35fdfa6"
      unitRef="usd">22716985</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib0289563decc48838603365db32cc3ca_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzktMS0xLTEtMjUwNTE_d0f76ffd-38b9-4d4e-bb4c-1adcfb902ae6"
      unitRef="usd">8914798</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id8e6091436a549f98f3cec5a0a75e8af_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzktMy0xLTEtMjUwNTE_f8fa6f77-b7c4-4549-94f6-079e21ff7d3f"
      unitRef="usd">17274277</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i419a2d556706493ab4b2181a81a0cb1c_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzEwLTEtMS0xLTMwNzM0_9f9ddbd7-b17d-444c-8d11-0e3caac01db0"
      unitRef="usd">18400</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i104340ab2e74419a966cf79de451390b_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzEwLTMtMS0xLTMwNzM2_a225d59d-bd4b-47d3-a7f4-945d8f8e57c3"
      unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i45d4f8f58098417284290b11e12bcdea_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzEwLTEtMS0xLTI1MDUx_799026c3-3b89-4b71-93c2-b38808fae5c2"
      unitRef="usd">33981895</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i03bd0ca3092d40f2b11186fbfb3a4941_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90YWJsZTozYWE5NzgwZjU1ODE0OTljYjBiYzRmOTczZjUzZjBmMi90YWJsZXJhbmdlOjNhYTk3ODBmNTU4MTQ5OWNiMGJjNGY5NzNmNTNmMGYyXzEwLTMtMS0xLTI1MDUx_9f7337ce-56e1-4252-9eec-3df64a028675"
      unitRef="usd">39991262</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <gntx:RevenuefromContractwithCustomerPaymentTerms
      contextRef="id60dd28507764b14b6e630d722346293_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90ZXh0cmVnaW9uOjA4NDkyZmE1ZmI2ODQ1MmI5NTBmOGFkMjNiMDhkYmE3XzQ2ODY_5fbd16ba-e283-46be-9c2b-2140cdbdbdcb">P15D</gntx:RevenuefromContractwithCustomerPaymentTerms>
    <gntx:RevenuefromContractwithCustomerPaymentTerms
      contextRef="i177e86bcfa334e51ac4cd5a00f8a26e2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90ZXh0cmVnaW9uOjA4NDkyZmE1ZmI2ODQ1MmI5NTBmOGFkMjNiMDhkYmE3XzQ2OTc_28c6a365-d478-4003-a955-67f5864e5c9a">P90D</gntx:RevenuefromContractwithCustomerPaymentTerms>
    <gntx:RevenuefromContractwithCustomerPaymentTerms
      contextRef="i0592e8d637154edb99f14b1e7b1b4742_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90ZXh0cmVnaW9uOjA4NDkyZmE1ZmI2ODQ1MmI5NTBmOGFkMjNiMDhkYmE3XzU2MzY_9e403de9-f4a5-4f03-9892-01a9b815eefb">P30D</gntx:RevenuefromContractwithCustomerPaymentTerms>
    <gntx:RevenuefromContractwithCustomerPaymentTerms
      contextRef="i7b96520cf38e4f46825480ef0d53c1ad_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90ZXh0cmVnaW9uOjA4NDkyZmE1ZmI2ODQ1MmI5NTBmOGFkMjNiMDhkYmE3XzU2NDc_14efec48-14e5-47cf-92d9-084e1d6dbd79">P45D</gntx:RevenuefromContractwithCustomerPaymentTerms>
    <gntx:RevenuefromContractwithCustomerPaymentTerms
      contextRef="i6ae24574b4024cb186f4598862385a7e_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90ZXh0cmVnaW9uOjA4NDkyZmE1ZmI2ODQ1MmI5NTBmOGFkMjNiMDhkYmE3XzYyMzQ_912eb535-1b7b-465b-96d1-bdca84b654ba">P30D</gntx:RevenuefromContractwithCustomerPaymentTerms>
    <gntx:RevenuefromContractwithCustomerPaymentTerms
      contextRef="i9d85e0419def4d639ac195f7cff5571b_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjYvZnJhZzowODQ5MmZhNWZiNjg0NTJiOTUwZjhhZDIzYjA4ZGJhNy90ZXh0cmVnaW9uOjA4NDkyZmE1ZmI2ODQ1MmI5NTBmOGFkMjNiMDhkYmE3XzYyNDU_310d4a98-4c1c-44bb-9399-c7447479a547">P75D</gntx:RevenuefromContractwithCustomerPaymentTerms>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzQxMTk_0e87fdcd-e676-4035-adee-034af76e5aad">ACQUISITIONS&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On September 18, 2020, the Company acquired Air-Craftglass, a Belgian company specializing in research and development for aircraft windows, for an initial payment of $1.1&#160;million in a stock purchase deal. The Company funded the acquisition with cash on hand. The transaction also included contingent consideration based on future revenues. The valuation process was completed during the third quarter of 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Air-Craftglass is now a 100% owned subsidiary of the Company, and has been classified within the &#x201c;Other&#x201d; segment.  The assets acquired and liabilities assumed were recorded at fair value on the acquisition date. &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company accounted for the acquisition under the provisions of FASB ASC Topic 805, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Business Combinations&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. There were no revenues of the business of Air-Craftglass which were included in the Company&#x2019;s consolidated statement of income and comprehensive income for the year ended December 31, 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On December 14, 2020, the Company acquired Argil for $3.7&#160;million in a stock purchase deal, which was in addition to the previous $4.2&#160;million equity investment by the Company in Argil. The Company funded the acquisition with cash on hand. Argil specializes in electrochromic technology and research and development, which the Company anticipates using to complement and expand its product offerings and leverage for manufacturing efficiencies. The valuation process was completed during the fourth quarter of 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Argil is now a 100% owned subsidiary of the Company, and has been classified within the &#x201c;Automotive&#x201d; segment.  The assets acquired and liabilities assumed were recorded at fair value on the acquisition date. The Company accounted for the acquisition under the provisions of FASB ASC Topic 805, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Business Combinations&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. There were no revenues of the business of Argil which were included in the Company&#x2019;s consolidated statement of income and comprehensive income for the year ended December 31, 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On March 3, 2021 the Company acquired Guardian for approximately $12.0&#160;million. Guardian is an Israeli research and development company that specializes in in-cabin sensing technologies for the automotive industry. The Company funded the acquisition with cash on hand. The valuation process was completed during the fourth quarter of 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Guardian is now a 100% owned subsidiary of the Company as Gentex Technologies (Israel), LTD, and is classified within the Automotive segment. The Company accounted for the acquisition under the provisions of FASB ASC Topic 805, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Business Combinations&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. There were no revenues of the business of Guardian which were included in the Company&#x2019;s consolidated statement of income and comprehensive income in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-indent:36pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the fair values of the assets acquired, and the liabilities assumed, as of the acquisition date of March 3, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.690%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.928%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.054%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:22.718%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,378&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Personal Property&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,800,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trade Names and Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,300,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred Tax Asset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,942,623&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,951,439&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Net Assets Acquired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,041,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Through December 31, 2021, the Company has incurred acquisition-related costs of approximately $375,000, which has been expensed as incurred in the "Selling, general &amp;amp; administrative" section of its  Consolidated Statements of Income.&lt;/span&gt;&lt;/div&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="ie984ed94a0254ac49419d2d9049e719a_D20200918-20200918"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzEzODg_dd797e6b-858f-4437-9a18-b6a34b3fe6fd"
      unitRef="usd">1100000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired
      contextRef="ie9b19ab52caa4a538dd813c6efd0d0fd_I20200918"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzIwNDQ_6272cb71-2ee1-4ef2-a886-d3492ab0056f"
      unitRef="number">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i373425908fc64771859e2db5ec439780_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzIzNDk_09791c8e-6754-4c5b-91d8-40bf1a942f99"
      unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="ic7812ec1edf943fa8e8ce14a899aa902_D20201214-20201214"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzI1ODM_468ff088-bd46-4f22-922f-830a40c27697"
      unitRef="usd">3700000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:EquityMethodInvestments
      contextRef="ic6c3253d988847f9a75a2d753b20baf0_I20201214"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzI2NTA_8782a862-41fd-4d0e-853a-a214b83636e2"
      unitRef="usd">4200000</us-gaap:EquityMethodInvestments>
    <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired
      contextRef="i2a1c6c35c88044999edfb3973b77c401_I20201214"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzM0MDE_305369b6-c5ac-4410-b50e-d05d2792c6b3"
      unitRef="number">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if85739da91c84b92a64b857bfff42ba4_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzQxMTg_b33a4b40-8a83-40c4-b23a-d3c5c2d1882d"
      unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <gntx:BusinessAcquisitionAgreementValue
      contextRef="i97e1eaa8b9c54d5bbfc6d327ef28f9dd_I20210303"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzEwOTk1MTE2NDMyNDk_f77c4e5d-69ab-4426-848c-46c09008b332"
      unitRef="usd">12000000</gntx:BusinessAcquisitionAgreementValue>
    <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired
      contextRef="idff44393eac6444595ac181eb9b8e01d_I20210930"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzEwOTk1MTE2NDMyNjQ_41bc296d-4984-49b9-a990-cddf2592cfbf"
      unitRef="number">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
    <us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock
      contextRef="i942c42cdc5d54a1ba646264297f46cb1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzEwOTk1MTE2NDMyNzg_7f98949e-77f3-45b1-a753-0f85e459399b">&lt;div style="padding-left:36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the fair values of the assets acquired, and the liabilities assumed, as of the acquisition date of March 3, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.690%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.928%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.054%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:22.718%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,378&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Personal Property&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;In-Process R&amp;amp;D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,800,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trade Names and Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,300,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred Tax Asset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,942,623&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,951,439&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total Net Assets Acquired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,041,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="i144180508ee2439688b28049016913df_I20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90YWJsZTpmYTQ0NWU3YzI4OGE0MmQxYTFkZTFmMDZkYmZlMTA3My90YWJsZXJhbmdlOmZhNDQ1ZTdjMjg4YTQyZDFhMWRlMWYwNmRiZmUxMDczXzEtMi0xLTEtMzAwNzY_e5f9a072-5467-42a9-bc7f-8fe9a87a52d5"
      unitRef="usd">32378</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEquipment
      contextRef="i144180508ee2439688b28049016913df_I20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90YWJsZTpmYTQ0NWU3YzI4OGE0MmQxYTFkZTFmMDZkYmZlMTA3My90YWJsZXJhbmdlOmZhNDQ1ZTdjMjg4YTQyZDFhMWRlMWYwNmRiZmUxMDczXzItMi0xLTEtMzAwNzg_ea88bbdf-7fa1-452a-8bb7-292d4a8205ee"
      unitRef="usd">15000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="i2e1fe2d4223b434281190c8cfc2bec52_I20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90YWJsZTpmYTQ0NWU3YzI4OGE0MmQxYTFkZTFmMDZkYmZlMTA3My90YWJsZXJhbmdlOmZhNDQ1ZTdjMjg4YTQyZDFhMWRlMWYwNmRiZmUxMDczXzMtMi0xLTEtMzAwNzg_bcfd558f-4995-46ff-bbc3-bd5cd42d986d"
      unitRef="usd">6800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets
      contextRef="i069c6407b80d44a8b0e2db90a740af01_I20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90YWJsZTpmYTQ0NWU3YzI4OGE0MmQxYTFkZTFmMDZkYmZlMTA3My90YWJsZXJhbmdlOmZhNDQ1ZTdjMjg4YTQyZDFhMWRlMWYwNmRiZmUxMDczXzQtMi0xLTEtMzAwNzg_dd7af82c-3376-4adc-98ac-d1a948ef7676"
      unitRef="usd">1300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets
      contextRef="i144180508ee2439688b28049016913df_I20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90YWJsZTpmYTQ0NWU3YzI4OGE0MmQxYTFkZTFmMDZkYmZlMTA3My90YWJsZXJhbmdlOmZhNDQ1ZTdjMjg4YTQyZDFhMWRlMWYwNmRiZmUxMDczXzUtMi0xLTEtMzAwNzg_0faec8b0-01c4-4c4b-990e-b153da05951c"
      unitRef="usd">1942623</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
    <us-gaap:Goodwill
      contextRef="i144180508ee2439688b28049016913df_I20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90YWJsZTpmYTQ0NWU3YzI4OGE0MmQxYTFkZTFmMDZkYmZlMTA3My90YWJsZXJhbmdlOmZhNDQ1ZTdjMjg4YTQyZDFhMWRlMWYwNmRiZmUxMDczXzYtMi0xLTEtMzAwNzg_8ae3c304-6186-4ced-827b-7bf957cf3bfc"
      unitRef="usd">1951439</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets
      contextRef="i144180508ee2439688b28049016913df_I20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90YWJsZTpmYTQ0NWU3YzI4OGE0MmQxYTFkZTFmMDZkYmZlMTA3My90YWJsZXJhbmdlOmZhNDQ1ZTdjMjg4YTQyZDFhMWRlMWYwNmRiZmUxMDczXzctMi0xLTEtMzAwNzg_1b4dbf47-96b6-44b4-a761-7c7ffea08499"
      unitRef="usd">12041440</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets>
    <us-gaap:BusinessAcquisitionCostOfAcquiredEntityTransactionCosts
      contextRef="i6d3583964494432b9c3e4eacf80e4de7_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xNjkvZnJhZzozMjQyOWM1MWIxZDE0MTU1YWM5ZTQ3NjJlMTI2NDcyMC90ZXh0cmVnaW9uOjMyNDI5YzUxYjFkMTQxNTVhYzllNDc2MmUxMjY0NzIwXzM5Nzk_5ba7aa06-4865-4f9c-b470-4f86131295f4"
      unitRef="usd">375000</us-gaap:BusinessAcquisitionCostOfAcquiredEntityTransactionCosts>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTEtMS0xLTI1MDUx_cc53e3e3-b79b-4e99-8010-c87a6be12d13"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTEtMS0xLTI1MDUx_cc53e3e3-b79b-4e99-8010-c87a6be12d13"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTEtMS0xLTI1MDUx_0705a03c-2234-4df6-a491-d2010cb352ca"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTEtMS0xLTI1MDUx_0705a03c-2234-4df6-a491-d2010cb352ca"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTUtMS0xLTI1MDUx_b798259c-4688-4065-92aa-4d499e92b262"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTUtMS0xLTI1MDUx_b798259c-4688-4065-92aa-4d499e92b262"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTMtMS0xLTI1MDUx_12e7362a-ccc0-4f98-a639-475f8a223b36"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTMtMS0xLTI1MDUx_12e7362a-ccc0-4f98-a639-475f8a223b36"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTUtMS0xLTI1MDUx_872515fe-0b7c-46ab-927c-31083837560c"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTUtMS0xLTI1MDUx_872515fe-0b7c-46ab-927c-31083837560c"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTMtMS0xLTI1MDUx_5fc23b0b-baf3-434d-994b-0f0fbdb96878"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTMtMS0xLTI1MDUx_5fc23b0b-baf3-434d-994b-0f0fbdb96878"
          xlink:type="locator"/>
        <link:footnote id="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMzLTAtMS0xLTI1MDUx_2069051c-a043-4f47-97de-48d6a21b3eb6" xlink:label="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMzLTAtMS0xLTI1MDUx_2069051c-a043-4f47-97de-48d6a21b3eb6" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"><xhtml:span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:400;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline">(1)</xhtml:span><xhtml:span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> Earnings Per Share has been adjusted to exclude the portion of net income allocated to participating securities as a result of share-based payment awards</xhtml:span></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTEtMS0xLTI1MDUx_cc53e3e3-b79b-4e99-8010-c87a6be12d13"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMzLTAtMS0xLTI1MDUx_2069051c-a043-4f47-97de-48d6a21b3eb6"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTEtMS0xLTI1MDUx_0705a03c-2234-4df6-a491-d2010cb352ca"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMzLTAtMS0xLTI1MDUx_2069051c-a043-4f47-97de-48d6a21b3eb6"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTUtMS0xLTI1MDUx_b798259c-4688-4065-92aa-4d499e92b262"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMzLTAtMS0xLTI1MDUx_2069051c-a043-4f47-97de-48d6a21b3eb6"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI5LTMtMS0xLTI1MDUx_12e7362a-ccc0-4f98-a639-475f8a223b36"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMzLTAtMS0xLTI1MDUx_2069051c-a043-4f47-97de-48d6a21b3eb6"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTUtMS0xLTI1MDUx_872515fe-0b7c-46ab-927c-31083837560c"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMzLTAtMS0xLTI1MDUx_2069051c-a043-4f47-97de-48d6a21b3eb6"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzI4LTMtMS0xLTI1MDUx_5fc23b0b-baf3-434d-994b-0f0fbdb96878"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjEwNDlhNWU3MTMzMTQxN2RhNzU4ZjIyOTkxMjZmOGM5L3NlYzoxMDQ5YTVlNzEzMzE0MTdkYTc1OGYyMjk5MTI2ZjhjOV8xMTgvZnJhZzphMjhlZDA5YTIzYTg0M2EzYTVmYTgzMzI5YjkyMTU2MS90YWJsZTozZjQ3YjAzMmM5YmY0NTk5YmZkMTJjNGRiY2FhMjI5Ny90YWJsZXJhbmdlOjNmNDdiMDMyYzliZjQ1OTliZmQxMmM0ZGJjYWEyMjk3XzMzLTAtMS0xLTI1MDUx_2069051c-a043-4f47-97de-48d6a21b3eb6"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
