<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2021q4"
  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:tls="http://telos.com/20220331"
  xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="tls-20220331.xsd" xlink:type="simple"/>
    <context id="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="if8f1980d04d54dfc9d2e6d42dd48439f_I20220503">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
        </entity>
        <period>
            <instant>2022-05-03</instant>
        </period>
    </context>
    <context id="i185d2036d6fc4ef18f95fbbcf1929374_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i771a28c28afa416c97b861530c5d58a5_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ic1ad623e690b458fb93c7ad2ea528469_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i7909fb49429a48f2be1f07f839ae8e5e_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ifc14ffd56fa149df9b34005d92d457ea_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="if34c252cb0d84ad89f5cefd7d797faba_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ia41894d0fe8b4b2fa4819a2b4189f099_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i6582bc760e524caaaaddc0e1f785db14_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i72dd106191af4070bad0484790194def_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</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="ib3062e8fbbc84fcdaa55f3c9f827bd63_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</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="i069233ab3eb143b9a529d7cbb3be2bb2_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</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="i046463aeaac54367979520ec189d6c92_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</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="if65cac9a6e9f42339ed0119ff5b99ab0_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="if4a067ba4225455dbee6e503406a8dea_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i92fce045c8f8418383758b1626dfc2cd_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i91bd2719b6d84e29949167f313bf8cf5_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i252472244cc14d59a5f513a408a00106_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i2b6406c78cac45109914b67c9e2c7ec3_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i89569822e3e04c07bab78d488e44edf0_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="ibde45c7dfc3e446085cd8082814e820b_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="ibe08835f685144e790d716e78315dee6_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</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="i14a20a64a5d3452dbcfb7c0c5d71e635_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</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="i8376cfb62afa40a6800e88a8ddce5a1b_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</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="i59448d49b7b04c5f96edf1f0442ba19b_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</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="idcceb8f67abd4312a19c7efbf6f46927_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i80077aa30c104f8686aff10d06065206_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i5388986ce6eb49af9071e3e315195feb_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i33315063596d40c5bc2b92c3b220a335_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i59894df938944c248524b15119daf85c_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i633f310474774e27821348a472e4f998_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i5b290de8c3294cfdbf057c852d8986dc_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i3d231127f5604d6f9091ead216d97081_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tls:TelosIdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i8fb91c32dff84ec6bf9f8aa2d13cdcff_D20201112-20201112">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
        </entity>
        <period>
            <startDate>2020-11-12</startDate>
            <endDate>2020-11-12</endDate>
        </period>
    </context>
    <context id="ib49240c2bfce4f55a8cc65e97fc824c1_D20201119-20201119">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:IPOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-11-19</startDate>
            <endDate>2020-11-19</endDate>
        </period>
    </context>
    <context id="ifa6106707e5540529d0e93f28c5b6b52_I20201119">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:IPOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-11-19</instant>
        </period>
    </context>
    <context id="if657f51eca0e44f4b3339f51a6ea7206_D20201119-20201119">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tls:ExchangeableRedeemablePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:IPOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-11-19</startDate>
            <endDate>2020-11-19</endDate>
        </period>
    </context>
    <context id="i9b22192161814ba5ae5f99c40f449df6_D20201119-20201119">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tls:TelosIdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:IPOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-11-19</startDate>
            <endDate>2020-11-19</endDate>
        </period>
    </context>
    <context id="i934b8136ca8e4bc3be62d0055d67c2cb_D20210406-20210406">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">tls:SecondaryPublicOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-06</startDate>
            <endDate>2021-04-06</endDate>
        </period>
    </context>
    <context id="i128f09764d614a66b90074d1cb09df52_I20210406">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">tls:SecondaryPublicOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-04-06</instant>
        </period>
    </context>
    <context id="ia1681bdcb0504aecbe9e98089b7a644e_D20210419-20210419">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">tls:EnlightenmentCapitalSolutionsFundIILPMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-19</startDate>
            <endDate>2021-04-19</endDate>
        </period>
    </context>
    <context id="iba8ca2d8643445e5a8d32c14bd53a93d_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodErrorCorrectionAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="id6e64dba15b44bda8685a7c0abd3eef9_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ibeec4aebfbcd46bf94fdf08064298046_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodErrorCorrectionAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i80b9ba922d1248b28de9aaf3bf541824_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tls:ProductsAndServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i349f23655e194026b95b2e59cfcd3c51_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tls:ProductsAndServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodErrorCorrectionAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i40cccfca3c37474eb4ee089ff24dbf33_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tls:ProductsAndServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i411efbfb5aa4400b9af32b836bf2c3ac_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i66c26c0bdc6442ea95b831e57b419b60_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tls:ServiceBasedRSUAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i0bcddbc8b2fb48cf8b7863a93435e94b_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tls:ServiceBasedRSUAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i2d5b0e84714a454b96c7b3ba05dc2b98_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i39bba81b2e424ae6b1738268275c609d_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ic5b905a18d8248f4ba312b60c60a7243_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ia3bfb56471de46bdb1d6ede2430de15c_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i8cfe462d26504ed5b0b0ed754344d161_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerProductAndServiceBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">tls:RevenueTimingOfTransferOfGoodsOrServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredOverTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ie7e1bdebb5cd4120a888bb9cc1a436e6_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerProductAndServiceBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">tls:RevenueTimingOfTransferOfGoodsOrServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredOverTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i35a5f0e302974c86a12858834a39fb0d_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerProductAndServiceBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">tls:RevenueTimingOfTransferOfGoodsOrServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredAtPointInTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i9b30f5e051d74edcbcf34e2232e1b436_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerProductAndServiceBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">tls:RevenueTimingOfTransferOfGoodsOrServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredAtPointInTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i66c62d19b02443459f9499b3728af70c_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i0325e4c790254106ad41aab20a0e3a16_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i5a1398b607b84ef9a02ad91ad53a8316_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i57ee630b1bf14168b44c0d1483af5a47_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ib52b553194024214bd12917bff93e00a_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i52b5b12ca5344e9da33020367111f47f_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i031bda6cac654d3fbece71bee485f64c_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ib48ad0bcfb9a472583873aa847330f52_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ica3db64bd5bd4bff8bd9fb25dc152707_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i8f156b6ee354426392541fc46a0e647e_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i3317f6b99d8f424f9ee902632d0b210d_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:FederalGovernmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="id1d18954f0de4d80b6025b10d59bd5a6_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:FederalGovernmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i8c5d3af6afc94debb0b435265f064d86_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:StateLocalAndCommercialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="id1e5eccca550499da47bdd5130085c70_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:StateLocalAndCommercialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i268e5a4ff2d4464cb45f1311b0fd0781_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:FederalGovernmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i8db4f3d6c30c4d658cef0d343f6d577e_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:FederalGovernmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ia4eb96bf9a7a4d0693dd6257b76850ea_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:StateLocalAndCommercialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="iee4181fa7fad4b9aaf372376fee43128_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:StateLocalAndCommercialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ica4a2b9b3ca240aaa8c1c51c408fc9f4_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">us-gaap:FixedPriceContractMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i88c23154ea6f46fe9d6aef8202a3686e_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">us-gaap:FixedPriceContractMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i3a1f02dc7b134b24ac9d943737b01f9c_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">us-gaap:TimeAndMaterialsContractMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i202293b628024b869d98780d851f331e_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">us-gaap:TimeAndMaterialsContractMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i29aeda4e887e426297a87a38e1ef4f9b_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">tls:CostPlusFixedFeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i045389adf2954b36b03ec4ac344d9df7_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">tls:CostPlusFixedFeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i1dd48a56ace84468a156aa8583bf6abb_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">us-gaap:FixedPriceContractMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ia39a9119c25a4fc4957082e84f41866c_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">us-gaap:FixedPriceContractMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i36eee9ca706841c7862ec5c67f7c8493_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">us-gaap:TimeAndMaterialsContractMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i9187322817194987aac8412992b5f8d0_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">us-gaap:TimeAndMaterialsContractMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ia65364906609462ab0fa8485be37e64b_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">tls:CostPlusFixedFeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ie4bf7b99c82b4e759c75d30e7596b27b_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerBasisOfPricingAxis">tls:CostPlusFixedFeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="id8658de4855d4e3aafb39f33a14de75a_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:FederalGovernmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerProductAndServiceBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ifa1f197447ac4f75aa3e54641fcd66fa_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:FederalGovernmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerProductAndServiceBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="idc2066be369b4761bf9c19f6bd3b0174_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:FederalGovernmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i8b6607121da4435ea9fcf68d7144a9ca_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:USDepartmentOfDefenseMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerProductAndServiceBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="id5d46361d0124975a7ad8a4951b03940_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:USDepartmentOfDefenseMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerProductAndServiceBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i57c298d98d6f47bfa0bcfd8c31407a6c_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:CivilianMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerProductAndServiceBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ic2036cd1f6d8414c89c1fda749773f3e_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tls:CivilianMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerProductAndServiceBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="idb2e5dca9ce44165acea9c3c3317faa1_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2022-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i7637abb1c0ee4f87b21e5952e4ef63e5_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2023-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i37aa63efa7464c228826e1c8f8149304_D20210730-20210730">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tls:AssetPurchaseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-07-30</startDate>
            <endDate>2021-07-30</endDate>
        </period>
    </context>
    <context id="ia6f05ce3d6fa4f5bb6423c26c0fded03_I20210730">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tls:AssetPurchaseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-07-30</instant>
        </period>
    </context>
    <context id="ib68b1c72d2884c8ab028b0e515a6d0ff_D20210730-20210730">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tls:AssetPurchaseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-07-30</startDate>
            <endDate>2021-07-30</endDate>
        </period>
    </context>
    <context id="ieedf4c7a0b0b46feb2365d8ba1b1b77f_D20210730-20210730">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tls:AssetPurchaseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-07-30</startDate>
            <endDate>2021-07-30</endDate>
        </period>
    </context>
    <context id="id89a3e2d7e364bb1822b15a16d60ad65_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i07a3f0651a7240a89f2bb34e570f965b_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i82d55f26d6f64f04af87a9015ccdba06_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ibd4ebfa1545c44c7b9eddc0070da4696_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i28b67bf9b4f5453da130677a9ef94ea8_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:SoftwareAndSoftwareDevelopmentCostsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i60c75cc4875d44948ae1488f78daa5b9_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="ifd744e52a092491c8cc7f4f6c12ca84b_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ie7d88c8e8c1d4aaebed050b689fad28c_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="iea4406eb112640b8a9af74a3bee1cc86_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i8a99b2118b5240e2b36f85244f742e2f_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:SoftwareAndSoftwareDevelopmentCostsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i40e0c60cf6c14c78b1effe901b3b65cf_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:SoftwareAndSoftwareDevelopmentCostsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i9d0614962706421ba3893632cf6ab433_I20161231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">tls:TelosIdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2016-12-31</instant>
        </period>
    </context>
    <context id="i60e91674e993488aa271cc14644b496c_D20201123-20201123">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tls:TelosIdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-11-23</startDate>
            <endDate>2020-11-23</endDate>
        </period>
    </context>
    <context id="i1b58860d0f6e4abea0fcba0102e8e927_I20201123">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">tls:TelosIdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-11-23</instant>
        </period>
    </context>
    <context id="i690697e57fc04d7eb28b9d888528a2c7_D20210101-20210131">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">tls:TelosIdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="ia2a8f3fa55d240d4a0ff7c705ac78c20_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">tls:EmmettWoodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i09e7e8b1fa5a4228aa2fd965c591e80a_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">tls:EmmettWoodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ie458ade5d35249b88098c760b6343ad5_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">tls:EmmettWoodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i8097d307f8aa4c03b69a9ef304a331b5_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">tls:EmmettWoodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i52683ad38d61441780cec94328756503_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i9942a778ceb144ea8413d7da2b1ade6c_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i7cddfe7be326451db32e7f7444d750aa_D20220201-20220201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-02-01</endDate>
        </period>
    </context>
    <context id="if903edf430344d2999afd6f862849356_D20220201-20220201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-02-01</endDate>
        </period>
    </context>
    <context id="ifce38ef6063a43ee9f89229be59fbb99_D20220201-20220201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-02-01</endDate>
        </period>
    </context>
    <context id="ia0f7ee49e55d4c66b99654847a163539_D20220201-20220201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">tls:ShareBasedPaymentArrangementTrancheFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-02-01</endDate>
        </period>
    </context>
    <context id="i52083a3744ac40b491407fe6085417d7_D20220201-20220201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-02-01</endDate>
        </period>
    </context>
    <context id="id154606ebb774d4bb052caf0c0152fe6_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tls:Two016OmnibusLongTermIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i293a0bacce8e444d832665ede8b15184_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tls:Two016OmnibusLongTermIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i77fbbaa00c2f455cad99210eaa759a54_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tls:Two016OmnibusLongTermIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ia571eafcfa3042938497593c53268742_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tls:Two016OmnibusLongTermIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i7a40b068e3774f5c8c42f14972a61116_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ie1a78a763b65447c938a7459d8754e96_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ie30f7fa243734bc3b3d8848226303e16_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ia85b7e926eb74ac4968672145e29fa9a_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="if1352f8253114148952bedf4ae9ddb75_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i0d2bcf6be73e49b88384966709bfc176_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i94ce4547a7ac4f029732a91e89b1f224_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i81ed0e3b9ab54ec09b65d42d5f7fcc6c_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i253b82786db24df49c24ca482c17e4aa_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tls:ServiceBasedRSUAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iff0378154f6f43d8823360b124637669_D20211001-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tls:ServiceBasedRSUAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-10-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ic7617243a09b4ffab078de3072301640_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tls:ServiceBasedRSUAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i30d743d3a027486fafd6007286623dad_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tls:ServiceBasedRSUAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i976c13ad489f44d0abfeeca6fdbf4595_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tls:ServiceBasedRSUAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia8e9bd04f3c9420eb15da53f1929c159_D20201001-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tls:ServiceBasedRSUAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-10-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i5a319f0b5b384608ac6a78cc796ef83a_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tls:ServiceBasedRSUAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i723f1409b67448b697415d5b9b8db809_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tls:ServiceBasedRSUAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i4427f9d065c2420d801ccdfc61467875_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</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="i4bf8d7a95e1c4f348e0a3080f26ebda0_D20211001-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-10-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i689be82c00b0483597119a640c2193cf_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="ic8c4caaee2814b109ef8812b67dc4faf_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i9aa5aef9f1e046b3a98a87304eb4fdaf_D20201001-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-10-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ia674a102136040aaa2f5728af1ce9dc8_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i62057e8ed46a4e49b25fe48ccf010648_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="ib1286b03483c4bcbb2adc99b53b1fbb9_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ExecutiveOfficerMember</xbrldi:explicitMember>
                <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="i5c15eeb2a5524cceb915744d2579ae2d_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ExecutiveOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i771bcdc5bc2f43b39cab8cc5b6bfb277_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tls:CertainEmployeesMember</xbrldi:explicitMember>
                <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="i0796a0be42b94b44895a969dd7ead69b_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tls:CertainEmployeesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i0d2113854cb8406aab764083136f95e5_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i374596cdc0d14126b69973a367311d81_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ie7d18cdf684b4a2bbadfb094f292d08a_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i996f7629cd83451da2e45ec9bd4aa929_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i1630bad81e884580bc9d0f917338e40e_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i87d27b86d3e74bd2ab305d176b1d18e6_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecuritySolutionsSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i5a9e00e3d48a4c25a151bc81928a9e40_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="id33af39f913d473baf73c4d7609c1f20_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000320121</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tls:SecureNetworksSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usd">
        <measure>iso4217:USD</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="segment">
        <measure>tls:segment</measure>
    </unit>
    <dei:EntityCentralIndexKey
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80L2ZyYWc6YWY5OGY2YzVmNzZhNDVhMmIxNWQxZWVlNmMwZmE3ODYvdGFibGU6YzA0MjNiMzMwZjBlNDkxMzlkYzcwMzVhNzBjYTllNGQvdGFibGVyYW5nZTpjMDQyM2IzMzBmMGU0OTEzOWRjNzAzNWE3MGNhOWU0ZF80LTEtMS0xLTU3MTI3_ae78f862-f792-4a72-bceb-1a5f78f2d089">0000320121</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80L2ZyYWc6YWY5OGY2YzVmNzZhNDVhMmIxNWQxZWVlNmMwZmE3ODYvdGFibGU6YzA0MjNiMzMwZjBlNDkxMzlkYzcwMzVhNzBjYTllNGQvdGFibGVyYW5nZTpjMDQyM2IzMzBmMGU0OTEzOWRjNzAzNWE3MGNhOWU0ZF81LTEtMS0xLTU3MTI3_43e360b6-8866-43db-9c81-b1d75ff12844">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:AmendmentFlag
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80L2ZyYWc6YWY5OGY2YzVmNzZhNDVhMmIxNWQxZWVlNmMwZmE3ODYvdGFibGU6YzA0MjNiMzMwZjBlNDkxMzlkYzcwMzVhNzBjYTllNGQvdGFibGVyYW5nZTpjMDQyM2IzMzBmMGU0OTEzOWRjNzAzNWE3MGNhOWU0ZF83LTEtMS0xLTU3MTI3_f28ab7cd-ff52-488e-8673-0218912b4c92">false</dei:AmendmentFlag>
    <dei:DocumentFiscalYearFocus
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80L2ZyYWc6YWY5OGY2YzVmNzZhNDVhMmIxNWQxZWVlNmMwZmE3ODYvdGFibGU6YzA0MjNiMzMwZjBlNDkxMzlkYzcwMzVhNzBjYTllNGQvdGFibGVyYW5nZTpjMDQyM2IzMzBmMGU0OTEzOWRjNzAzNWE3MGNhOWU0ZF85LTEtMS0xLTU3MTI3_c328c59b-6aff-45a7-ba27-ae02d3eb8929">2022</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80L2ZyYWc6YWY5OGY2YzVmNzZhNDVhMmIxNWQxZWVlNmMwZmE3ODYvdGFibGU6YzA0MjNiMzMwZjBlNDkxMzlkYzcwMzVhNzBjYTllNGQvdGFibGVyYW5nZTpjMDQyM2IzMzBmMGU0OTEzOWRjNzAzNWE3MGNhOWU0ZF8xMC0xLTEtMS01NzEyNw_dae03b6f-64f7-4545-96fb-a36c46b3d1a6">Q1</dei:DocumentFiscalPeriodFocus>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i0bcddbc8b2fb48cf8b7863a93435e94b_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTcyNzQ5NA_12903dbd-17ad-4560-a289-3cdca62caef6">P2Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i66c26c0bdc6442ea95b831e57b419b60_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTY0OTI2NzUxODI2MQ_e63fa82c-007b-4413-a687-d993961251c6">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="idb2e5dca9ce44165acea9c3c3317faa1_I20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNDEzL2ZyYWc6OTU1OTFiYmI0YjhlNDEzZGE0NWY4NGZhMjdjZTBhMDkvdGFibGU6OThmMTI3YzZlZjY2NDMwZTljNjM3NmE0MzdjMDM4ZWYvdGFibGVyYW5nZTo5OGYxMjdjNmVmNjY0MzBlOWM2Mzc2YTQzN2MwMzhlZl8xLTEtMS0xLTY4MDYx_e27c217f-e5fc-4d81-8c89-0e6b473f8a12">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="i7637abb1c0ee4f87b21e5952e4ef63e5_I20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNDEzL2ZyYWc6OTU1OTFiYmI0YjhlNDEzZGE0NWY4NGZhMjdjZTBhMDkvdGFibGU6OThmMTI3YzZlZjY2NDMwZTljNjM3NmE0MzdjMDM4ZWYvdGFibGVyYW5nZTo5OGYxMjdjNmVmNjY0MzBlOWM2Mzc2YTQzN2MwMzhlZl8yLTEtMS0xLTY4MDYx_a6480483-820e-41c1-b2ef-6e60160e22e6">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="if903edf430344d2999afd6f862849356_D20220201-20220201"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzk0L2ZyYWc6ZTEwNjAzNTUwZTc3NDU1Y2IxZDRkNGZiZTdkNzQwYzEvdGFibGU6YjE0OTFlMmU4NTI4NGE5OGEwNjM0NjFhMDdmY2VjYjEvdGFibGVyYW5nZTpiMTQ5MWUyZTg1Mjg0YTk4YTA2MzQ2MWEwN2ZjZWNiMV8wLTEtMS0xLTY3NDQ1_1eaf7edf-66eb-4dec-8eb4-ad9a42e8d5d7"
      unitRef="number">0.25</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="ifce38ef6063a43ee9f89229be59fbb99_D20220201-20220201"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzk0L2ZyYWc6ZTEwNjAzNTUwZTc3NDU1Y2IxZDRkNGZiZTdkNzQwYzEvdGFibGU6YjE0OTFlMmU4NTI4NGE5OGEwNjM0NjFhMDdmY2VjYjEvdGFibGVyYW5nZTpiMTQ5MWUyZTg1Mjg0YTk4YTA2MzQ2MWEwN2ZjZWNiMV8wLTEtMS0xLTY3NDQ1_40506cc7-a6e2-487f-8e00-cc92432ec441"
      unitRef="number">0.25</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="ia0f7ee49e55d4c66b99654847a163539_D20220201-20220201"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzk0L2ZyYWc6ZTEwNjAzNTUwZTc3NDU1Y2IxZDRkNGZiZTdkNzQwYzEvdGFibGU6YjE0OTFlMmU4NTI4NGE5OGEwNjM0NjFhMDdmY2VjYjEvdGFibGVyYW5nZTpiMTQ5MWUyZTg1Mjg0YTk4YTA2MzQ2MWEwN2ZjZWNiMV8wLTEtMS0xLTY3NDQ1_4aeb5be8-36fc-410b-8000-8208d3ef24ae"
      unitRef="number">0.25</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="i52083a3744ac40b491407fe6085417d7_D20220201-20220201"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzk0L2ZyYWc6ZTEwNjAzNTUwZTc3NDU1Y2IxZDRkNGZiZTdkNzQwYzEvdGFibGU6YjE0OTFlMmU4NTI4NGE5OGEwNjM0NjFhMDdmY2VjYjEvdGFibGVyYW5nZTpiMTQ5MWUyZTg1Mjg0YTk4YTA2MzQ2MWEwN2ZjZWNiMV8wLTEtMS0xLTY3NDQ1_db6ab38b-2ddd-4046-b555-c43e9558b2e5"
      unitRef="number">0.25</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="id154606ebb774d4bb052caf0c0152fe6_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNjE4_ab60baf3-4773-4564-92f1-2d9db1abbd49">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="i9aa5aef9f1e046b3a98a87304eb4fdaf_D20201001-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNDIyL2ZyYWc6ZTEwZDM4Yjc2MGVkNGVhNjlhZDY2NjZiYzc5YzUwNmMvdGFibGU6YmZlN2NmMWJlMzk2NGI3N2FjMmFlZDRlMWJkNDEwZmYvdGFibGVyYW5nZTpiZmU3Y2YxYmUzOTY0Yjc3YWMyYWVkNGUxYmQ0MTBmZl8yLTEtMS0xLTcxNDI4_3ede3bd2-e85f-473b-bf5b-9ea740b67f18">P0Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <dei:DocumentType
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGV4dHJlZ2lvbjoyNGM5YWI4ZTBlZmM0ODczOWJiY2JhODAzY2JmMWIxN180OTQ3ODAyMzI2ODM1_b828f607-2d68-4246-8314-94c6d54f013f">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6YTk5NDk2YWY1ZThhNDM4ZTliOGFlOWViMzk5NDkxZWQvdGFibGVyYW5nZTphOTk0OTZhZjVlOGE0MzhlOWI4YWU5ZWIzOTk0OTFlZF8wLTAtMS0xLTY2NzY4_e1ff12d3-e244-4065-a841-4b1e91073812">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGV4dHJlZ2lvbjoyNGM5YWI4ZTBlZmM0ODczOWJiY2JhODAzY2JmMWIxN180OTQ3ODAyMzI2ODg0_a49a066f-ff02-4baf-9c80-fcd5f23752f9">2022-03-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6ZGU0ZGI3OWNlY2JiNDMxYTlhNzQzOTc3NzkxMmViYjIvdGFibGVyYW5nZTpkZTRkYjc5Y2VjYmI0MzFhOWE3NDM5Nzc3OTEyZWJiMl8wLTAtMS0xLTY2Nzcw_6be11e04-ea58-4f40-acf8-0e6c1e1dd6a9">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGV4dHJlZ2lvbjoyNGM5YWI4ZTBlZmM0ODczOWJiY2JhODAzY2JmMWIxN180OTQ3ODAyMzI2ODk2_e7778827-e889-490a-b4d2-b415955ee48f">001-08443</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGV4dHJlZ2lvbjoyNGM5YWI4ZTBlZmM0ODczOWJiY2JhODAzY2JmMWIxN180OTQ3ODAyMzI2ODk3_1e4b7766-92a4-4150-854b-fc4f07eb21ea">TELOS CORPORATION</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6ZTkzMTNmZDFkOGU0NDlhOTgwMzhmMjU4Y2MxZDZhNDYvdGFibGVyYW5nZTplOTMxM2ZkMWQ4ZTQ0OWE5ODAzOGYyNThjYzFkNmE0Nl8wLTAtMS0xLTY2Nzk2_75d5b816-0734-491d-a71c-e94f16a6e20d">MD</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6ZTkzMTNmZDFkOGU0NDlhOTgwMzhmMjU4Y2MxZDZhNDYvdGFibGVyYW5nZTplOTMxM2ZkMWQ4ZTQ0OWE5ODAzOGYyNThjYzFkNmE0Nl8wLTItMS0xLTY2Nzk4_bb19e142-4505-4ff6-b080-ac15ce80afeb">52-0880974</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6ZTkzMTNmZDFkOGU0NDlhOTgwMzhmMjU4Y2MxZDZhNDYvdGFibGVyYW5nZTplOTMxM2ZkMWQ4ZTQ0OWE5ODAzOGYyNThjYzFkNmE0Nl8zLTAtMS0xLTY4MDM2L3RleHRyZWdpb246NGZiODc1NzNmNDkzNDNlMWFjMjMzZDY5ZGRiOTE0ZjhfNDM5ODA0NjUxMTE2Mw_37331b64-ea18-49d1-a289-db7e64fc6856">19886 Ashburn Road</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6ZTkzMTNmZDFkOGU0NDlhOTgwMzhmMjU4Y2MxZDZhNDYvdGFibGVyYW5nZTplOTMxM2ZkMWQ4ZTQ0OWE5ODAzOGYyNThjYzFkNmE0Nl8zLTAtMS0xLTY4MDM2L3RleHRyZWdpb246NGZiODc1NzNmNDkzNDNlMWFjMjMzZDY5ZGRiOTE0ZjhfNDM5ODA0NjUxMTE3Mw_1e2f289b-179b-4eb1-b24c-c8bdafac3217">Ashburn</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6ZTkzMTNmZDFkOGU0NDlhOTgwMzhmMjU4Y2MxZDZhNDYvdGFibGVyYW5nZTplOTMxM2ZkMWQ4ZTQ0OWE5ODAzOGYyNThjYzFkNmE0Nl8zLTAtMS0xLTY4MDM2L3RleHRyZWdpb246NGZiODc1NzNmNDkzNDNlMWFjMjMzZDY5ZGRiOTE0ZjhfNDM5ODA0NjUxMTE4NA_af7b0833-4654-4d5f-a1a3-1845b845b90d">VA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6ZTkzMTNmZDFkOGU0NDlhOTgwMzhmMjU4Y2MxZDZhNDYvdGFibGVyYW5nZTplOTMxM2ZkMWQ4ZTQ0OWE5ODAzOGYyNThjYzFkNmE0Nl8zLTItMS0xLTY2ODAw_b3183a61-36d6-42c4-b23b-3dd0db743cf2">20147-2358</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGV4dHJlZ2lvbjoyNGM5YWI4ZTBlZmM0ODczOWJiY2JhODAzY2JmMWIxN180OTQ3ODAyMzI2ODk5_46bacf05-09dd-4e58-8665-9054cb97bbc8">703</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGV4dHJlZ2lvbjoyNGM5YWI4ZTBlZmM0ODczOWJiY2JhODAzY2JmMWIxN180OTQ3ODAyMzI2OTA4_c679a636-09fa-4cde-8367-28866393db3d">724-3800</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6MjRkNzg5OTllNzU4NGUxNThhMjA0MjIyM2MzNTBjMzYvdGFibGVyYW5nZToyNGQ3ODk5OWU3NTg0ZTE1OGEyMDQyMjIzYzM1MGMzNl8xLTAtMS0xLTY2ODEz_f7e67ee2-3eba-4489-b898-c1c1e60360d2">Common stock, $0.001 par value per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6MjRkNzg5OTllNzU4NGUxNThhMjA0MjIyM2MzNTBjMzYvdGFibGVyYW5nZToyNGQ3ODk5OWU3NTg0ZTE1OGEyMDQyMjIzYzM1MGMzNl8xLTEtMS0xLTY2ODE1_2f33deee-363e-46af-9049-8a8ad1e0d247">TLS</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6MjRkNzg5OTllNzU4NGUxNThhMjA0MjIyM2MzNTBjMzYvdGFibGVyYW5nZToyNGQ3ODk5OWU3NTg0ZTE1OGEyMDQyMjIzYzM1MGMzNl8xLTItMS0xLTY2ODE3_8585ff25-69e7-4d1d-b3e9-a5ef2f84130d">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGV4dHJlZ2lvbjoyNGM5YWI4ZTBlZmM0ODczOWJiY2JhODAzY2JmMWIxN180OTQ3ODAyMzI2OTA5_11c3176b-c702-4436-8dd3-ec6149c5e783">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGV4dHJlZ2lvbjoyNGM5YWI4ZTBlZmM0ODczOWJiY2JhODAzY2JmMWIxN180OTQ3ODAyMzI2OTEw_3c21cc82-7165-4eab-9a3d-32946dadd5b9">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6YTM0M2UwZGQ5YTYxNDBkNjkxYjRmNGFiYzQ3M2I0N2QvdGFibGVyYW5nZTphMzQzZTBkZDlhNjE0MGQ2OTFiNGY0YWJjNDczYjQ3ZF8wLTAtMS0xLTY2ODMx_f9cfd7b3-be7d-4ef9-b7cc-619f8fa14761">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6YTM0M2UwZGQ5YTYxNDBkNjkxYjRmNGFiYzQ3M2I0N2QvdGFibGVyYW5nZTphMzQzZTBkZDlhNjE0MGQ2OTFiNGY0YWJjNDczYjQ3ZF8xLTQtMS0xLTY2ODMz_ee24335d-a5d6-4f69-a577-21e029287b6c">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGFibGU6YTM0M2UwZGQ5YTYxNDBkNjkxYjRmNGFiYzQ3M2I0N2QvdGFibGVyYW5nZTphMzQzZTBkZDlhNjE0MGQ2OTFiNGY0YWJjNDczYjQ3ZF8yLTQtMS0xLTY2ODMz_921a4901-4a0c-431e-842e-518b54274ffd">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGV4dHJlZ2lvbjoyNGM5YWI4ZTBlZmM0ODczOWJiY2JhODAzY2JmMWIxN180OTQ3ODAyMzI2OTEz_cd00bee8-f140-4ec8-8cb6-a69f8521bacc">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="if8f1980d04d54dfc9d2e6d42dd48439f_I20220503"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xL2ZyYWc6MjRjOWFiOGUwZWZjNDg3MzliYmNiYTgwM2NiZjFiMTcvdGV4dHJlZ2lvbjoyNGM5YWI4ZTBlZmM0ODczOWJiY2JhODAzY2JmMWIxN18xNjQ5MjY3NDQzNTAx_0668d0c7-1138-4268-a9dd-9d37f7541ab8"
      unitRef="shares">67883854</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i185d2036d6fc4ef18f95fbbcf1929374_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMy0xLTEtMS01NzEyNw_b2c20136-5579-42ea-9e94-bfa2a09a0e96"
      unitRef="usd">48108000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i771a28c28afa416c97b861530c5d58a5_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMy0zLTEtMS01NzEyNw_bec1f8d8-6b06-48f0-aeff-56ff3e904b2f"
      unitRef="usd">52058000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic1ad623e690b458fb93c7ad2ea528469_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfNC0xLTEtMS01NzEyNw_d6d76a1c-eca9-4522-909a-67e8dc1a832c"
      unitRef="usd">2052000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7909fb49429a48f2be1f07f839ae8e5e_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfNC0zLTEtMS01NzEyNw_5115b101-1b93-4333-a1b0-0496b2ba0c00"
      unitRef="usd">3699000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfNS0xLTEtMS01NzEyNw_7879a5e3-9658-4c91-af1c-444553bf5283"
      unitRef="usd">50160000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfNS0zLTEtMS01NzEyNw_36be8f13-db88-45ad-b250-85a4c4daf9aa"
      unitRef="usd">55757000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i185d2036d6fc4ef18f95fbbcf1929374_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfNy0xLTEtMS01NzEyNw_7bff198a-3654-4532-9456-5f5138724527"
      unitRef="usd">29731000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i771a28c28afa416c97b861530c5d58a5_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfNy0zLTEtMS01NzEyNw_20e99731-51b4-4727-8ab1-d78b150efbf6"
      unitRef="usd">39490000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="ic1ad623e690b458fb93c7ad2ea528469_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfOC0xLTEtMS01NzEyNw_6737d45d-e1de-4842-a09c-bdd7d02ee9e7"
      unitRef="usd">1558000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i7909fb49429a48f2be1f07f839ae8e5e_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfOC0zLTEtMS01NzEyNw_be39c92b-44c3-465e-84da-5e1c89947ae3"
      unitRef="usd">1798000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfOS0xLTEtMS01NzEyNw_dea341a1-fd27-464d-b772-b9cb99ef2695"
      unitRef="usd">31289000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfOS0zLTEtMS01NzEyNw_608fd1f5-15bb-4907-943d-a9e87046e8f3"
      unitRef="usd">41288000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:SellingAndMarketingExpense
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTEtMS0xLTEtNTcxMjc_181f8831-d057-4b43-a3e2-6c4b35ed7e7b"
      unitRef="usd">5252000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTEtMy0xLTEtNTcxMjc_271a2913-8bcf-4c0f-a965-fd5312f88fa9"
      unitRef="usd">3826000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTItMS0xLTEtNTcxMjc_56484950-ef85-48a4-a6b5-d45106be8d2f"
      unitRef="usd">5430000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTItMy0xLTEtNTcxMjc_b706dbb7-fcdb-4d6b-8e42-48264b87f4d4"
      unitRef="usd">4061000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTMtMS0xLTEtNTcxMjc_4b900e4d-f031-4e06-9cb4-ff0e6d852185"
      unitRef="usd">22923000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTMtMy0xLTEtNTcxMjc_707bd878-8016-49bf-97b5-61453b5c3dea"
      unitRef="usd">20076000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTQtMS0xLTEtNTcxMjc_09b58afc-d765-4fae-bcf8-b90b20f7e76f"
      unitRef="usd">33605000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTQtMy0xLTEtNTcxMjc_79b56a0d-ea81-4ee1-9712-b71d7f158ed0"
      unitRef="usd">27963000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:OperatingIncomeLoss
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTUtMS0xLTEtNTcxMjc_6ed05ca0-dfee-45fb-b018-8306cf599ee1"
      unitRef="usd">-14734000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTUtMy0xLTEtNTcxMjc_6df2f999-3e58-4097-b67a-584905142cfa"
      unitRef="usd">-13494000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTctMS0xLTEtNTcxMjc_e127d494-1365-420f-8f9f-b0e088fc132d"
      unitRef="usd">12000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTctMy0xLTEtNTcxMjc_6029d136-4d73-444b-9c14-9e6715e09fd8"
      unitRef="usd">-1054000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:InterestExpense
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTgtMS0xLTEtNTcxMjc_50d95bf9-2433-479b-9cef-62f1bf32a03c"
      unitRef="usd">190000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTgtMy0xLTEtNTcxMjc_d9caf092-0493-4775-beea-d8df49037855"
      unitRef="usd">196000</us-gaap:InterestExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTktMS0xLTEtNTcxMjc_e0a6c4fe-a13c-4619-966f-e974e25a3f82"
      unitRef="usd">-14912000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMTktMy0xLTEtNTcxMjc_a8b5d01a-1ff5-43bd-928d-74a55fd2113b"
      unitRef="usd">-14744000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjAtMS0xLTEtNTcxMjc_e5ec15bb-126f-4994-a62a-dd412afb8b51"
      unitRef="usd">71000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjAtMy0xLTEtNTcxMjc_62905f11-513b-4901-8a5a-950b63a7d679"
      unitRef="usd">34000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjEtMS0xLTEtNTcxMjc_1134dbac-df32-4f81-97f4-e91080841781"
      unitRef="usd">-14983000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjEtMy0xLTEtNTcxMjc_0c3818e7-6189-436d-b370-0f19fb59b432"
      unitRef="usd">-14778000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjQtMS0xLTEtNTcxMjc_411bc71f-5cac-4d57-8a85-5b811faa2079"
      unitRef="usdPerShare">-0.22</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjQtMy0xLTEtNTcxMjc_7e36dc6d-1a2d-40ee-8b90-5ee36a720ac5"
      unitRef="usdPerShare">-0.23</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjUtMS0xLTEtNTcxMjc_3539593d-6e6d-4d86-8a8d-9e93f30ab408"
      unitRef="usdPerShare">-0.22</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjUtMy0xLTEtNTcxMjc_89ce9d45-6c11-4c95-9c27-b0ff0110a9a3"
      unitRef="usdPerShare">-0.23</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjYtMS0xLTEtNTcxMjc_ed09c58b-7277-4b8d-b7c9-2c8e1321835d"
      unitRef="shares">67559000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjYtMy0xLTEtNTcxMjc_1612259d-1037-40a6-b285-12b2b8988ede"
      unitRef="shares">64625000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjctMS0xLTEtNTcxMjc_59660df2-9651-412a-beca-4a4d5653a469"
      unitRef="shares">67559000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xNi9mcmFnOmI0MmZkZGVkNmQzNjRlNzg5ZDE4OWIwMzlkYzMxYjYzL3RhYmxlOjMwYjY1MmZlNjU4MDQxYjJhOGQ4OTM4MTUzMjNhNjEzL3RhYmxlcmFuZ2U6MzBiNjUyZmU2NTgwNDFiMmE4ZDg5MzgxNTMyM2E2MTNfMjctMy0xLTEtNTcxMjc_e5b71ceb-5200-4b8c-af2d-6055f573b975"
      unitRef="shares">64625000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yMi9mcmFnOmMwMzFiMGY3ZGY2ZTQyNzI4Njk3YzQ5Y2Q2YTdiNzM1L3RhYmxlOjliNDRmYTg1YjM3OTRhYmM4YTI1MmU4MjI1ODc1NTNhL3RhYmxlcmFuZ2U6OWI0NGZhODViMzc5NGFiYzhhMjUyZTgyMjU4NzU1M2FfMi0xLTEtMS01NzEyNw_97d145a4-c01c-46b0-9d37-36e706e4b44b"
      unitRef="usd">-14983000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yMi9mcmFnOmMwMzFiMGY3ZGY2ZTQyNzI4Njk3YzQ5Y2Q2YTdiNzM1L3RhYmxlOjliNDRmYTg1YjM3OTRhYmM4YTI1MmU4MjI1ODc1NTNhL3RhYmxlcmFuZ2U6OWI0NGZhODViMzc5NGFiYzhhMjUyZTgyMjU4NzU1M2FfMi0zLTEtMS01NzEyNw_4bb53e95-ac34-4de3-bf10-1c8a5db1575f"
      unitRef="usd">-14778000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yMi9mcmFnOmMwMzFiMGY3ZGY2ZTQyNzI4Njk3YzQ5Y2Q2YTdiNzM1L3RhYmxlOjliNDRmYTg1YjM3OTRhYmM4YTI1MmU4MjI1ODc1NTNhL3RhYmxlcmFuZ2U6OWI0NGZhODViMzc5NGFiYzhhMjUyZTgyMjU4NzU1M2FfNC0xLTEtMS01NzEyNw_4b65c6b4-2a30-4005-9b94-7e03dbff7b37"
      unitRef="usd">29000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yMi9mcmFnOmMwMzFiMGY3ZGY2ZTQyNzI4Njk3YzQ5Y2Q2YTdiNzM1L3RhYmxlOjliNDRmYTg1YjM3OTRhYmM4YTI1MmU4MjI1ODc1NTNhL3RhYmxlcmFuZ2U6OWI0NGZhODViMzc5NGFiYzhhMjUyZTgyMjU4NzU1M2FfNC0zLTEtMS01NzEyNw_07a4e6e4-560e-4cd6-9662-f39a7e987f22"
      unitRef="usd">-32000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yMi9mcmFnOmMwMzFiMGY3ZGY2ZTQyNzI4Njk3YzQ5Y2Q2YTdiNzM1L3RhYmxlOjliNDRmYTg1YjM3OTRhYmM4YTI1MmU4MjI1ODc1NTNhL3RhYmxlcmFuZ2U6OWI0NGZhODViMzc5NGFiYzhhMjUyZTgyMjU4NzU1M2FfNi0xLTEtMS01NzEyNw_53a5f7b2-44ab-4e88-8506-d602a115bcc5"
      unitRef="usd">-14954000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yMi9mcmFnOmMwMzFiMGY3ZGY2ZTQyNzI4Njk3YzQ5Y2Q2YTdiNzM1L3RhYmxlOjliNDRmYTg1YjM3OTRhYmM4YTI1MmU4MjI1ODc1NTNhL3RhYmxlcmFuZ2U6OWI0NGZhODViMzc5NGFiYzhhMjUyZTgyMjU4NzU1M2FfNi0zLTEtMS01NzEyNw_614af9f3-9ff1-4f36-b967-5dbb80a6baa4"
      unitRef="usd">-14810000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNC0xLTEtMS01NzEyNw_24235922-e484-4661-839b-5274eb9f9839"
      unitRef="usd">120233000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNC0zLTEtMS01NzEyNw_58e6686c-d504-42df-b9f4-90d8cbda559d"
      unitRef="usd">126562000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNS0wLTEtMS02MDU1OC90ZXh0cmVnaW9uOmZkOWYzYjAyNDhkYTQ3MWU4MGJlNGEyYmNmZGRjYmQ1XzE2NDkyNjc0NDE3Mzg_e159aa21-d94a-4290-b5e4-d973cf0b4df5"
      unitRef="usd">211000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNS0wLTEtMS02MDU1OC90ZXh0cmVnaW9uOmZkOWYzYjAyNDhkYTQ3MWU4MGJlNGEyYmNmZGRjYmQ1XzE2NDkyNjc0NDE3NDY_1a3af708-3bc6-4c6c-95e6-a8fc17a87723"
      unitRef="usd">116000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNS0xLTEtMS01NzEyNw_17b05b5e-f660-4d25-a7ed-7b1caa6cb17f"
      unitRef="usd">57734000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNS0zLTEtMS01NzEyNw_837a1781-591a-40a9-8679-63a557758278"
      unitRef="usd">59844000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryValuationReserves
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNi0wLTEtMS02MDU3MS90ZXh0cmVnaW9uOjllMjM2M2M4MTlmMTQ4NjBiZjJhMGM2Y2UzZjU2MzVhXzE2NDkyNjc0NDE3NDM_8ee02557-a6d5-4285-bf9b-27e05adc9af2"
      unitRef="usd">773000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNi0wLTEtMS02MDU3MS90ZXh0cmVnaW9uOjllMjM2M2M4MTlmMTQ4NjBiZjJhMGM2Y2UzZjU2MzVhXzE2NDkyNjc0NDE3NTE_a8f6d957-a3ca-402b-9572-1d4d2cd4118f"
      unitRef="usd">861000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryNet
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNi0xLTEtMS01NzEyNw_bf4f85c3-e98d-4408-a587-09541bd2e6ad"
      unitRef="usd">2097000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNi0zLTEtMS01NzEyNw_80e1913a-5033-47f4-9b48-26c8dd1ca6ff"
      unitRef="usd">1247000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNy0xLTEtMS01NzEyNw_61f19371-dcf8-40ad-a5bc-a798a66e2bfa"
      unitRef="usd">4898000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNy0zLTEtMS01NzEyNw_cb4a8af2-528d-4add-b237-5d4341a0f075"
      unitRef="usd">3329000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfOS0xLTEtMS01NzEyNw_0bb7e2aa-b6fa-4937-999f-8a29750bb31b"
      unitRef="usd">2773000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfOS0zLTEtMS01NzEyNw_22e0ac8a-b444-43a0-95c2-64dfb040cc9e"
      unitRef="usd">732000</us-gaap:OtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTAtMS0xLTEtNTcxMjc_8bc8b17b-f649-44ab-8bac-ed0dc8614c13"
      unitRef="usd">187735000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTAtMy0xLTEtNTcxMjc_a0d3e2f9-d850-42cc-a259-a8b6f5a78f7e"
      unitRef="usd">191714000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTAtMC0xLTEtNjA1OTIvdGV4dHJlZ2lvbjpkYTU1MzMyN2U3Mzg0YTNjOTNhZjJlMzEwODhjOTU0ZF8xNjQ5MjY3NDQxNzY3_3f19e467-3afe-4f3e-860b-0de881d1926d"
      unitRef="usd">34826000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTAtMC0xLTEtNjA1OTIvdGV4dHJlZ2lvbjpkYTU1MzMyN2U3Mzg0YTNjOTNhZjJlMzEwODhjOTU0ZF8xNjQ5MjY3NDQxNzc4_6df3a6d4-d213-4c39-9c95-f102941d74dd"
      unitRef="usd">34057000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTEtMS0xLTEtNTcxMjc_fbc2edca-ab62-4794-81e7-7e0f062c79dc"
      unitRef="usd">14823000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTEtMy0xLTEtNTcxMjc_ada434d5-39b6-4884-a4df-724ec69e197c"
      unitRef="usd">15141000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTItMS0xLTEtNTcxMjc_210f9ac2-aef0-4e52-9933-c34fa8339745"
      unitRef="usd">705000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTItMy0xLTEtNTcxMjc_6d719d41-430c-412e-9316-10591b9c43ec"
      unitRef="usd">852000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTMtMS0xLTEtNTcxMjc_4761fdf0-1ad2-4588-9c65-26c9df37156a"
      unitRef="usd">17922000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTMtMy0xLTEtNTcxMjc_628fc5b7-2835-4f30-a421-5fc7358e4536"
      unitRef="usd">17922000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTMtMS0xLTEtNjA1MTU_9550c7a6-3823-4644-8b78-c47cbe1d5128"
      unitRef="usd">21613000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTMtMy0xLTEtNjA1MDc_a71e5dd4-cbe8-4501-a781-462aabccab84"
      unitRef="usd">19199000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTQtMS0xLTEtNTcxMjc_5ea8c993-d554-40ec-bde3-fa0788962290"
      unitRef="usd">1223000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTQtMy0xLTEtNTcxMjc_f9d4acc6-07b4-4c52-8a3e-c2c3d5b99794"
      unitRef="usd">1253000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTUtMS0xLTEtNTcxMjc_caff170b-dccd-4e5a-81fd-a105a2a880b1"
      unitRef="usd">244021000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTUtMy0xLTEtNTcxMjc_1fcee0bb-2600-44f0-9505-eda58888fc42"
      unitRef="usd">246081000</us-gaap:Assets>
    <us-gaap:AccountsPayableAndOtherAccruedLiabilitiesCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTgtMS0xLTEtNTcxMjc_42ec148c-4477-46c9-a150-17c12020d9de"
      unitRef="usd">35223000</us-gaap:AccountsPayableAndOtherAccruedLiabilitiesCurrent>
    <us-gaap:AccountsPayableAndOtherAccruedLiabilitiesCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTgtMy0xLTEtNTcxMjc_53e04459-34ca-4b97-b207-0df372aa63a7"
      unitRef="usd">34548000</us-gaap:AccountsPayableAndOtherAccruedLiabilitiesCurrent>
    <us-gaap:DeferredCompensationLiabilityCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTktMS0xLTEtNTcxMjc_088351fa-ad80-4d1a-a2ab-fe28f881017b"
      unitRef="usd">8702000</us-gaap:DeferredCompensationLiabilityCurrent>
    <us-gaap:DeferredCompensationLiabilityCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMTktMy0xLTEtNTcxMjc_d42a8a3a-256d-414a-9bdb-caf733a60fe0"
      unitRef="usd">6557000</us-gaap:DeferredCompensationLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjAtMS0xLTEtNTcxMjc_8c958f87-029f-43f2-bf4c-ceeea7413725"
      unitRef="usd">7036000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjAtMy0xLTEtNTcxMjc_b62d92fc-0389-402d-a84f-d287e9e0b694"
      unitRef="usd">6381000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjEtMS0xLTEtNTcxMjc_6f849f18-4c82-49fe-b734-5d0963c351e8"
      unitRef="usd">1493000</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjEtMy0xLTEtNTcxMjc_4bdc2fef-171f-4883-958b-1bc8da66ab7e"
      unitRef="usd">1461000</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjItMS0xLTEtNTcxMjc_8f59b51a-ea0b-47d3-8594-3048fdba8476"
      unitRef="usd">517000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjItMy0xLTEtNTcxMjc_e370c90b-a376-43ee-9b71-c84e17556858"
      unitRef="usd">564000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjMtMS0xLTEtNTcxMjc_3b1fcfb2-19c1-49aa-b68b-0252651c0271"
      unitRef="usd">2082000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjMtMy0xLTEtNTcxMjc_df4f35d2-d2c1-4077-8e45-5c8027ec129b"
      unitRef="usd">1430000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjQtMS0xLTEtNTcxMjc_585f71f8-01f3-4966-880e-33a0522e717f"
      unitRef="usd">55053000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjQtMy0xLTEtNTcxMjc_1ee547eb-e0a4-4212-8587-4b0cda94aa4b"
      unitRef="usd">50941000</us-gaap:LiabilitiesCurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjYtMS0xLTEtNTcxMjc_1d6aa2e2-604f-47fe-8042-abde4f2a7082"
      unitRef="usd">12457000</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjYtMy0xLTEtNTcxMjc_cfef67e0-ad24-4d1f-9df3-a3ce2c91c843"
      unitRef="usd">12840000</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjctMS0xLTEtNTcxMjc_5cb131db-fbe4-4413-9f5a-a18bea4c817d"
      unitRef="usd">275000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjctMy0xLTEtNTcxMjc_adda7919-5c9f-4aa6-8bfd-c37aba247af2"
      unitRef="usd">388000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjgtMS0xLTEtNTcxMjc_e44011c7-3881-4a6d-acd8-c7c866f9d375"
      unitRef="usd">735000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjgtMy0xLTEtNTcxMjc_a7637500-3b54-40fd-9c16-8173351ea039"
      unitRef="usd">723000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjktMS0xLTEtNTcxMjc_85d27603-d760-41bf-8182-aeb5ba305572"
      unitRef="usd">440000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMjktMy0xLTEtNTcxMjc_9a42a888-fd16-4157-85f4-da04695e06d4"
      unitRef="usd">935000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzAtMS0xLTEtNTcxMjc_55c22e75-4cc9-4698-936a-6235c857171e"
      unitRef="usd">68960000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzAtMy0xLTEtNTcxMjc_b9fa9c99-c59b-4e90-ac90-8d383bbebc40"
      unitRef="usd">65827000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzItMS0xLTEtNTcxMjc_9b584486-0b92-4d5a-8bc1-a235cca3ac0d"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzItMy0xLTEtNTcxMjc_19a1b1cb-624a-4a72-903b-608e605719ff"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzUtMC0xLTEtNjA2MDQvdGV4dHJlZ2lvbjoxYjQzMmJlY2U3YjI0NGNiODA1YmM5ZmQ1YTVkMzNkN18xNjQ5MjY3NDQxODQz_695ce831-7bcb-4aaa-a9d2-bf6b255320d8"
      unitRef="usdPerShare">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzUtMC0xLTEtNjA2MDQvdGV4dHJlZ2lvbjoxYjQzMmJlY2U3YjI0NGNiODA1YmM5ZmQ1YTVkMzNkN18xNjQ5MjY3NDQxODQz_d5f922ca-b3eb-4e09-b9fb-184ffbb257eb"
      unitRef="usdPerShare">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzUtMC0xLTEtNjA2MDQvdGV4dHJlZ2lvbjoxYjQzMmJlY2U3YjI0NGNiODA1YmM5ZmQ1YTVkMzNkN18xNjQ5MjY3NDQxODU4_22145eff-bed6-42e1-8def-22f8fc0cb53c"
      unitRef="shares">250000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzUtMC0xLTEtNjA2MDQvdGV4dHJlZ2lvbjoxYjQzMmJlY2U3YjI0NGNiODA1YmM5ZmQ1YTVkMzNkN18xNjQ5MjY3NDQxODU4_5ef12b4c-3d47-45b1-8a0f-e8344da36c02"
      unitRef="shares">250000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzUtMC0xLTEtNjA2MDQvdGV4dHJlZ2lvbjoxYjQzMmJlY2U3YjI0NGNiODA1YmM5ZmQ1YTVkMzNkN18xNjQ5MjY3NDQxODY1_4343d6f0-7f40-4397-b4c9-68cf23e75a71"
      unitRef="shares">67867500</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzUtMC0xLTEtNjA2MDQvdGV4dHJlZ2lvbjoxYjQzMmJlY2U3YjI0NGNiODA1YmM5ZmQ1YTVkMzNkN18xNjQ5MjY3NDQxODY1_48bbdb14-b047-4865-a601-ed16a808882a"
      unitRef="shares">67867500</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzUtMC0xLTEtNjA2MDQvdGV4dHJlZ2lvbjoxYjQzMmJlY2U3YjI0NGNiODA1YmM5ZmQ1YTVkMzNkN18xNjQ5MjY3NDQxODcx_795701f3-d876-4612-a755-c1e8ade9fa01"
      unitRef="shares">66767450</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzUtMC0xLTEtNjA2MDQvdGV4dHJlZ2lvbjoxYjQzMmJlY2U3YjI0NGNiODA1YmM5ZmQ1YTVkMzNkN18xNjQ5MjY3NDQxODcx_e9f9aba9-42a1-4c26-9766-10d6b5ecc05e"
      unitRef="shares">66767450</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzUtMS0xLTEtNTcxMjc_708ed6c6-54c3-4ccc-a2b4-062e036dee41"
      unitRef="usd">106000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzUtMy0xLTEtNTcxMjc_9b0d3e54-3ee8-4740-a3c2-e3275b53ab38"
      unitRef="usd">105000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzYtMS0xLTEtNTcxMjc_66a6fc1d-de6a-4f44-a93c-c50f7a25bfba"
      unitRef="usd">376913000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzYtMy0xLTEtNTcxMjc_d80cd8ec-c64d-4f8c-8761-6aefdf645116"
      unitRef="usd">367153000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzctMS0xLTEtNTcxMjc_98f2d1a8-1a9d-4a91-b632-eff802428f6f"
      unitRef="usd">2000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzctMy0xLTEtNTcxMjc_b7f4669c-64f1-4054-a32e-357506e74048"
      unitRef="usd">-27000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzgtMS0xLTEtNTcxMjc_17234472-b17c-4f7a-8805-b27f92f589c6"
      unitRef="usd">-201960000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzgtMy0xLTEtNTcxMjc_177e204b-8136-42e1-8767-65243973aea0"
      unitRef="usd">-186977000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzktMS0xLTEtNTcxMjc_5036760b-3ccd-4cfb-ab1c-c856094d6fb6"
      unitRef="usd">175061000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfMzktMy0xLTEtNTcxMjc_90cd5c0c-c735-414e-a697-50bac909c207"
      unitRef="usd">180254000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNDAtMS0xLTEtNTcxMjc_4480f659-989f-4d6c-8ddd-c06e22aa2e37"
      unitRef="usd">244021000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8yNS9mcmFnOmFhZjQ0MTc3M2VlZDQ4OWM5NDYzZDg0MzA4NmM2MWRlL3RhYmxlOjE1NDMxMDU5MDE1OTQ4ZTI5NDE5YzA3MTlkMjJjN2E3L3RhYmxlcmFuZ2U6MTU0MzEwNTkwMTU5NDhlMjk0MTljMDcxOWQyMmM3YTdfNDAtMy0xLTEtNTcxMjc_55a54931-6635-4384-bf86-7b924dd27a27"
      unitRef="usd">246081000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMy0xLTEtMS01NzEyNw_79241735-c2dc-4856-a3a1-0cdbd5b14555"
      unitRef="usd">-14983000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMy0zLTEtMS01NzEyNw_20feb1ff-5eb6-4400-834a-832d3034c91b"
      unitRef="usd">-14778000</us-gaap:NetIncomeLoss>
    <us-gaap:ShareBasedCompensation
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfNS0xLTEtMS01NzEyNw_ce821502-b80b-4051-8a75-86a8ccab4393"
      unitRef="usd">14298000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfNS0zLTEtMS01NzEyNw_da558914-e31a-4633-8f80-f5ec90984009"
      unitRef="usd">13670000</us-gaap:ShareBasedCompensation>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfNy0xLTEtMS01NzEyNw_51e46b9c-5ee4-4003-ac06-f46dab7a70fd"
      unitRef="usd">1405000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfNy0zLTEtMS01NzEyNw_f4e42e6b-87ab-4a63-9631-3ed93857709d"
      unitRef="usd">1360000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfOS0xLTEtMS01NzEyNw_713b4cdd-f2a7-41e2-b79e-ca417cf46b85"
      unitRef="usd">12000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfOS0zLTEtMS01NzEyNw_17888397-97f5-41cc-bb70-33ea50768b2f"
      unitRef="usd">9000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:AccretionExpense
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfOC0xLTEtMS02ODczNw_5bb5e70d-7424-4e81-8839-d7472008987b"
      unitRef="usd">12000</us-gaap:AccretionExpense>
    <us-gaap:AccretionExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfOC0zLTEtMS02ODczNw_07e1760c-068a-4e8d-91f5-b33c04b8812f"
      unitRef="usd">0</us-gaap:AccretionExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTAtMS0xLTEtNTcxMjc_01e1de5a-8e4b-407c-a200-1c3eb0968d3a"
      unitRef="usd">-7000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTAtMy0xLTEtNTcxMjc_4dec2fad-543f-48b9-bcea-80a9890a9486"
      unitRef="usd">-5000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTEtMS0xLTEtNTcxMjc_8fa318b9-0057-4346-84f8-e1a3e66f54ee"
      unitRef="usd">502000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTEtMy0xLTEtNTcxMjc_789b4692-507c-419c-8c97-e0253d4a755f"
      unitRef="usd">7148000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTItMS0xLTEtNTcxMjc_90b4c427-7561-4056-a3fc-718760fbcc5a"
      unitRef="usd">249000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTItMy0xLTEtNTcxMjc_c9cc0639-7d18-433e-83f7-048209cea5ee"
      unitRef="usd">-6882000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTUtMS0xLTEtNTcxMjc_c2f004f4-7175-465e-a36d-9582b8473b8e"
      unitRef="usd">2795000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTUtMy0xLTEtNTcxMjc_a2faffd6-9f43-4059-84b4-1e72f4d7b0b6"
      unitRef="usd">2165000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTYtMS0xLTEtNTcxMjc_8bf4f117-174f-4805-928f-18afdfd9e0cb"
      unitRef="usd">546000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTYtMy0xLTEtNTcxMjc_8875614e-53d5-4717-b76d-36f4671fa68e"
      unitRef="usd">480000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTctMS0xLTEtNTcxMjc_1ff53b21-6b38-44a1-ad07-c16be9fb2b50"
      unitRef="usd">-3341000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTctMy0xLTEtNTcxMjc_099f57e7-d2ef-46f1-8739-a7eb2ca7ea5f"
      unitRef="usd">-2645000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjAtMS0xLTEtNTcxMjc_6af837c6-28d7-4a75-ad34-75a4b3ab1cd5"
      unitRef="usd">351000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjAtMy0xLTEtNTcxMjc_4c99597d-9c8e-45c9-bafc-34964b2e3786"
      unitRef="usd">321000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTktMS0xLTEtNjA3NzI_1b0be1f5-fd60-444d-8692-471b0156adec"
      unitRef="usd">2886000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMTktMy0xLTEtNjA3NzI_ecfbd8c0-65e2-4d44-b109-c05d8af02069"
      unitRef="usd">0</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsToMinorityShareholders
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjEtMS0xLTEtNTcxMjc_d8ad8091-136c-472f-9a10-99b8c95d333a"
      unitRef="usd">0</us-gaap:PaymentsToMinorityShareholders>
    <us-gaap:PaymentsToMinorityShareholders
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjEtMy0xLTEtNTcxMjc_c8f86290-b9d4-41e1-964d-a7958e710ad5"
      unitRef="usd">2436000</us-gaap:PaymentsToMinorityShareholders>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjItMS0xLTEtNTcxMjc_095ab235-eb87-49ca-845e-a6b71020be8d"
      unitRef="usd">-3237000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjItMy0xLTEtNTcxMjc_d3869c32-665f-4ffa-98a1-b324e1f2d078"
      unitRef="usd">-2757000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjQtMS0xLTEtNTcxMjc_5e295d0a-c832-4b6a-98bc-82b9bc96115f"
      unitRef="usd">-6329000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjQtMy0xLTEtNTcxMjc_955c3c8d-165c-45ce-b59b-72136403cbb9"
      unitRef="usd">-12284000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjUtMS0xLTEtNTcxMjc_e2f3954d-4d41-45a3-8eb9-b3189624d1ee"
      unitRef="usd">126562000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ia41894d0fe8b4b2fa4819a2b4189f099_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjUtMy0xLTEtNTcxMjc_a223f73f-def5-42d4-8c99-77adf785fce5"
      unitRef="usd">106045000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjctMS0xLTEtNTcxMjc_fd528498-b1f7-4116-91bd-ecdc890537c0"
      unitRef="usd">120233000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i6582bc760e524caaaaddc0e1f785db14_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMjctMy0xLTEtNTcxMjc_1c8333d3-af63-46cd-b67f-2f2780aa25f7"
      unitRef="usd">93761000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMzEtMS0xLTEtNTcxMjc_223df15b-b5a1-45b6-8868-bc46f82e7bed"
      unitRef="usd">179000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMzEtMy0xLTEtNTcxMjc_7508cd2f-9887-4c2b-850d-cb5f8f7ff4e0"
      unitRef="usd">196000</us-gaap:InterestPaidNet>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMzUtMS0xLTEtNjQ3ODU_cdf7012e-8d9a-4979-b286-ab522626647d"
      unitRef="usd">147000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zMS9mcmFnOjJmMTJjYzEyMjYzOTRmYzM5YTQ4YzhkMTBkMmQwYzMxL3RhYmxlOmYyOTUxNmExMjEzNDQwMzE5Yjk5YWE5NzA1NGIyNTViL3RhYmxlcmFuZ2U6ZjI5NTE2YTEyMTM0NDAzMTliOTlhYTk3MDU0YjI1NWJfMzUtMy0xLTEtNjM2NDk_8bddaf34-6c40-4a98-9e54-5eb5367413e9"
      unitRef="usd">160000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i72dd106191af4070bad0484790194def_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMy0xLTEtMS02MDgzNQ_976050f8-9caa-4ded-915a-14b4379418ec"
      unitRef="shares">66767000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i72dd106191af4070bad0484790194def_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMi0xLTEtMS01NzEyNw_39a01767-3805-49d5-8a53-f777369e99b7"
      unitRef="usd">105000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ib3062e8fbbc84fcdaa55f3c9f827bd63_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMi0zLTEtMS01NzEyNw_81e18ca5-3f28-4cc3-9be7-808c61aad2bb"
      unitRef="usd">367153000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i069233ab3eb143b9a529d7cbb3be2bb2_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMi01LTEtMS01NzEyNw_ecb4d405-5063-4334-a529-47c00b39c4b2"
      unitRef="usd">-27000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i046463aeaac54367979520ec189d6c92_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMi03LTEtMS01NzEyNw_a0584a25-73f0-4a57-937a-114449558cab"
      unitRef="usd">-186977000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMi0xMS0xLTEtNTcxMjc_1c43b293-7979-48e0-b489-42d15b1fe18d"
      unitRef="usd">180254000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="if65cac9a6e9f42339ed0119ff5b99ab0_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMy03LTEtMS01NzEyNw_e615c0d2-c384-4f41-9e63-ee109f38d8f0"
      unitRef="usd">-14983000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMy0xMS0xLTEtNTcxMjc_a73d4e26-e23e-405b-9434-fabf3f9b2f23"
      unitRef="usd">-14983000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="if4a067ba4225455dbee6e503406a8dea_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNC01LTEtMS01NzEyNw_d8e69fac-a772-41e0-a9f3-a907262fe6a2"
      unitRef="usd">-29000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNC0xMS0xLTEtNTcxMjc_3c97a19f-d32d-47f5-ace0-0f7fce228c64"
      unitRef="usd">-29000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
      contextRef="i92fce045c8f8418383758b1626dfc2cd_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNi0xLTEtMS02NjAzMA_8f3ded49-d7c0-4d52-8a0a-6cfe1d19c67a"
      unitRef="shares">1100000</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="i92fce045c8f8418383758b1626dfc2cd_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNi0zLTEtMS02NjAzMA_c18d4412-5e75-451e-b2d8-1726127616a9"
      unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="i91bd2719b6d84e29949167f313bf8cf5_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNi01LTEtMS02NjAzMA_20908e63-62f0-4593-b70e-d124cf606a00"
      unitRef="usd">-2887000</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNi0xMS0xLTEtNjYwMzA_88bb50c4-9407-4275-b0cd-15e273674c99"
      unitRef="usd">-2886000</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i91bd2719b6d84e29949167f313bf8cf5_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNS0zLTEtMS01NzEyNw_605dbfef-cfcb-4af7-a353-dc5c3b1d0c8a"
      unitRef="usd">12647000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNS0xMS0xLTEtNTcxMjc_2d1af5f0-0d27-452b-8a4a-cb34a650287b"
      unitRef="usd">12647000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i252472244cc14d59a5f513a408a00106_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfOC0xLTEtMS02MDgzNQ_daeb20e6-5bcd-4e4e-bb27-022b72602c81"
      unitRef="shares">67867000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i252472244cc14d59a5f513a408a00106_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNi0xLTEtMS01NzEyNw_ad7abaef-d86e-4856-ae8e-cbd28e12d82b"
      unitRef="usd">106000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i2b6406c78cac45109914b67c9e2c7ec3_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNi0zLTEtMS01NzEyNw_0e607282-0958-4b8d-857f-c189dd2dfbf7"
      unitRef="usd">376913000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i89569822e3e04c07bab78d488e44edf0_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNi01LTEtMS01NzEyNw_5ec76938-b03d-4315-b4f6-979b71a1d230"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ibde45c7dfc3e446085cd8082814e820b_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNi03LTEtMS01NzEyNw_7132ab22-f8d7-41fe-a924-bcaea2e7e986"
      unitRef="usd">-201960000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfNi0xMS0xLTEtNTcxMjc_f237b54f-a47d-4a55-b096-44590b4fa6cc"
      unitRef="usd">175061000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ibe08835f685144e790d716e78315dee6_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTAtMS0xLTEtNjAxMTA_ebc14d52-c667-4591-9e5c-8527f6d8c01e"
      unitRef="shares">64625000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ibe08835f685144e790d716e78315dee6_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfOC0xLTEtMS01NzEyNw_028b0fc0-0698-42da-9c4b-288b8bbf1aad"
      unitRef="usd">103000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i14a20a64a5d3452dbcfb7c0c5d71e635_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfOC0zLTEtMS01NzEyNw_a3015515-0c69-4ddd-bc75-7076e608d327"
      unitRef="usd">270800000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i8376cfb62afa40a6800e88a8ddce5a1b_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfOC01LTEtMS01NzEyNw_9daa1d76-e04a-4678-b94b-308f722bd34d"
      unitRef="usd">44000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i59448d49b7b04c5f96edf1f0442ba19b_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfOC03LTEtMS01NzEyNw_3021a47f-00b2-4108-aa83-0185230e7b9a"
      unitRef="usd">-143843000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia41894d0fe8b4b2fa4819a2b4189f099_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfOC0xMS0xLTEtNTcxMjc_3ec1fd7c-5778-4ff3-b7d6-3edb5100b607"
      unitRef="usd">127104000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="idcceb8f67abd4312a19c7efbf6f46927_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfOS03LTEtMS01NzEyNw_5846ac09-bd8f-4875-af2c-4a951d3eebad"
      unitRef="usd">-14778000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfOS0xMS0xLTEtNTcxMjc_d73fd495-6e09-4f15-92a2-e14b661ec33b"
      unitRef="usd">-14778000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="i80077aa30c104f8686aff10d06065206_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTAtNS0xLTEtNTcxMjc_1f021fa9-e09e-42a7-a849-5d1837ed7cad"
      unitRef="usd">32000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTAtMTEtMS0xLTU3MTI3_59e9486f-62da-4bea-a3dd-e52c535d8113"
      unitRef="usd">32000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i5388986ce6eb49af9071e3e315195feb_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTMtNS0xLTEtNjAxMTA_49d7e2fb-4963-4ea4-a1ca-4244356f968e"
      unitRef="usd">13670000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTMtMTMtMS0xLTYwMTIw_0bb8ba7b-8d98-474d-b4d1-b3bfc0f59fd4"
      unitRef="usd">13670000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i33315063596d40c5bc2b92c3b220a335_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTQtMS0xLTEtNjAxMTA_addf125d-b472-43a9-97e7-2d320430d01c"
      unitRef="shares">64625000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i33315063596d40c5bc2b92c3b220a335_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTEtMS0xLTEtNTcxMjc_3724d378-69a2-4afe-a006-53b034114d9c"
      unitRef="usd">103000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i59894df938944c248524b15119daf85c_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTEtMy0xLTEtNTcxMjc_850f0081-30c5-4e99-aa8d-ea87013b8499"
      unitRef="usd">284470000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i633f310474774e27821348a472e4f998_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTEtNS0xLTEtNTcxMjc_d8001619-4249-4ae1-a130-f7f6de5dfc40"
      unitRef="usd">12000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i5b290de8c3294cfdbf057c852d8986dc_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTEtNy0xLTEtNTcxMjc_cce826b5-6e4f-4de4-a7ee-d2d2fdb27c0b"
      unitRef="usd">-158621000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6582bc760e524caaaaddc0e1f785db14_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8zNC9mcmFnOjE4M2I1OTc4ZWJhNjQ2NDVhZjgxMzEzY2YwZTU1ZTZmL3RhYmxlOmM1NTUwNjZlMjE1ZjQxMTliY2RmYWE2YTdiNmQwMGVjL3RhYmxlcmFuZ2U6YzU1NTA2NmUyMTVmNDExOWJjZGZhYTZhN2I2ZDAwZWNfMTEtMTEtMS0xLTU3MTI3_23ca1eca-8fe1-43c6-b8f1-31b990a4198b"
      unitRef="usd">125964000</us-gaap:StockholdersEquity>
    <us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwMzE_1d37ac67-54c6-4755-9e14-c129e0080073">Basis of Presentation and Summary of Significant Accounting Policies&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Nature of Business&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Organization&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Telos Corporation, together with its subsidiaries (the &#x201c;Company&#x201d; or &#x201c;Telos&#x201d; or &#x201c;We&#x201d;), a Maryland corporation, is a leading provider of cyber, cloud and enterprise solutions for the world's most security-conscious organizations. We own all of the issued and outstanding share capital of Xacta Corporation, a subsidiary that develops, markets and sells government-validated secure enterprise solutions to government and commercial customers. We also own all of the issued and outstanding share capital of Ubiquity.com, Inc., a holding company for Xacta Corporation. We also have a 100% ownership interest in Telos Identity Management Solutions, LLC (&#x201c;Telos ID&#x201d;), Teloworks, Inc. (&#x201c;Teloworks&#x201d;) and Telos APAC Pte. Ltd. (&#x201c;Telos APAC&#x201d;).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On November&#160;12, 2020, we amended our charter to effect an approximate&#160;0.794-for-1 reverse stock split with respect to our common stock. The par value and the authorized shares of the common stock were not adjusted as a result of the reverse stock split. The accompanying condensed consolidated financial statements and notes to the condensed consolidated financial statements give retroactive effect to the reverse stock split for all periods presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Public Offering of Common Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On November&#160;19, 2020, we completed our initial public offering of shares of our common stock. We issued $17.2 million shares of our common stock at a price of $17.00 per share, generating net proceeds of approximately $272.8 million.&#160; We used approximately $108.9 million of the net proceeds in connection with the conversion of our outstanding shares of Exchangeable Redeemable Preferred Stock into the right to receive cash and shares of our common stock, $30.0 million to fund our acquisition of the outstanding Class&#160;B Units of Telos ID, and $21.0 million to repay our outstanding senior term loan and subordinated debt.&#160; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On April&#160;6, 2021, we completed our follow-on offering of 9.1 million shares of our common stock at a price of $33.00 per share, including 7.0 million shares of common stock by certain existing stockholders of Telos. The offering generated approximately $64.3 million of net proceeds to Telos. We did not receive any proceeds from the shares of common stock sold by the selling stockholders. On April&#160;19, 2021, we used approximately $1.3 million of the net proceeds to repurchase 39,682 shares of our common stock and $26.9 million to repurchase the warrants to purchase 900,970 shares of our common stock owned by certain affiliates of Enlightenment Capital Solution ("EnCap"). We used the remaining net proceeds for general corporate purposes. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Principles of Consolidation and Reporting&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying condensed consolidated financial statements include the accounts of Telos and its subsidiaries, including Ubiquity.com, Inc., Xacta Corporation, Telos ID, Teloworks, and Telos APAC, all of whose issued and outstanding share capital is wholly-owned directly and indirectly by Telos Corporation. All intercompany transactions have been eliminated in consolidation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying condensed consolidated financial statements reflect all adjustments (which include normal recurring adjustments) and reclassifications necessary for their fair presentation in conformity with accounting principles generally accepted in the United States of America (&#x201c;U.S. GAAP&#x201d;) and pursuant to rules and regulations of the Securities and Exchange Commission (&#x201c;SEC&#x201d;). The presented interim results are not necessarily indicative of fiscal year performance for a variety of reasons, including, but not limited to, the impact of seasonal and short-term variations. We have continued to follow the accounting policies (including the critical accounting policies) set forth in the consolidated financial statements included in our 2021 Annual Report on Form 10-K filed with the SEC. These condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and notes thereto included in our Annual Report on Form 10-K for the fiscal year ended December&#160;31, 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In preparing these condensed consolidated financial statements, we have evaluated subsequent events through the date that these condensed consolidated financial statements were issued.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Segment Reporting&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating segments are defined as components of an enterprise for which separate discrete financial information is available and evaluated regularly by the chief operating decision maker (&#x201c;CODM&#x201d;), or decision-making group, in deciding how to allocate resources and assess performance. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the fourth quarter of 2021, we reorganized our internal management reporting structure and the financial results evaluated by our CODM; therefore, we changed our operating segments to align with how our CODM currently oversees the business, allocates resources and evaluates operating performance. As a result of the segment reorganization, we reported two reportable and operating segments: Security Solutions and Secure Networks. Our Security Solutions segment focuses on the Company's cybersecurity, cloud and identity solutions. Our Secure Networks segment provides offerings for enterprise security. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Prior period segment information has been recast to reflect the change. The segment reorganization had no impact on previously reported condensed consolidated financial results.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Basis of Comparison&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Revision of Prior Year Interim Financial Statements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recorded certain revisions related to the previously issued unaudited condensed consolidated financial statements. The Company considered the errors identified in accordance with the SEC's Staff Accounting Bulletin No. 99 and determined the impact was immaterial to the previously issued condensed consolidated interim financial statements. Nonetheless, the Company corrected these errors when identified in 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the third quarter of 2021, the Company identified that stock compensation for a single individual was incorrectly charged to cost of sales - services instead of general and administrative expense, of which $0.1 million was related to the first quarter of 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company erroneously presented the $2.4 million final payment to fully acquire all membership interest of Telos ID as an operating activity on the condensed consolidated statements of cash flows. The Company corrected the presentation to properly reflect the final payment within financing activities on the consolidated statements of cash flows in the fourth quarter of 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table reflects the impact of the correction on all affected line items of the Company's previously reported condensed consolidated financial statements for the period ended March 31, 2021 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&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:38.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.785%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 31, 2021&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="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Previously Reported&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Error Correction&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;As Adjusted&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Condensed Consolidated Statement of Operations&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of sales - Services&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,490&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Costs and expenses&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,288&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;General and administrative&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;112&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,076&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Selling, general and administrative expenses&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;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;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,963&#160;&lt;/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="margin-top:10pt"&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:38.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.785%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 31, 2021&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="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Previously Reported&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Error Correction&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;As Adjusted&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Condensed Consolidated Statement of Cash Flows&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Changes in other operating assets and liabilities&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,584)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7,148)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash used in operating activities&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,318)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,882)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Distribution to Telos ID Class B member - non-controlling interest&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,436)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,436)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash used in financing activities&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(321)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,436)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,757)&lt;/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="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of revenue, expenses, assets and liabilities and disclosure of contingent assets and liabilities. The Company regularly assesses these estimates; however, actual results could differ from those estimates. We base our estimates on historical experience, currently available information and various other assumptions that we believe are reasonable under the circumstances. The most significant items involving management estimates include estimates of revenue recognition, allowance for credit losses, allowance for inventory obsolescence, the valuation allowance for deferred tax assets, the provision for income taxes, share-based compensation, contingencies and litigation, and valuation of intangibles and goodwill. The impact of changes in estimates is recorded in the period in which they become known.&#160; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Summary of Significant Accounting Policies&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accounts receivable are stated at the invoiced amount, less an allowance for credit losses. The allowance for credit losses is management's best estimate of current expected credit losses over the contractual life of the accounts receivable. Accounts receivable balances are written off against the allowance for credit losses when management deems the balances uncollectible.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Receivables include billed and unbilled receivables. Unbilled receivables, substantially all of which are expected to be billed and collected within one year, are stated at their estimated realization value and consist of costs and fees billable on contract completion or the occurrence of a specific event, other than the passage of time.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories are stated at the lower of cost or net realizable value, where cost is determined using the weighted-average method. Substantially all inventories consist of purchased off-the-shelf hardware and software, and component computer parts used in connection with system integration services that we perform. Provisions have been made to reduce all obsolete, slow-moving or unsaleable inventories to their net realizable values. This provision is based on our overall obsolescence experience and our assessment of future inventory requirements. This charge is taken primarily due to the age of the specific inventory and the significant additional costs that would be necessary to upgrade to current standards, as well as the lack of forecasted sales for such inventory in the near future. Gross inventory was $2.9 million and $2.1 million as of March&#160;31, 2022 and December&#160;31, 2021, respectively. As of March&#160;31, 2022, it is management&#x2019;s judgment that we have fully provided for any potential inventory obsolescence, which was $0.8 million and $0.9&#160;million as of March&#160;31, 2022 and December&#160;31, 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Software Development Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for development costs of software in accordance with Accounting Standards Codification ("ASC") Topic 985-20, &#x201c;Software &#x2013; Costs of Software to be Sold, Leased, or Marketed&#x201d; and ASC Topic 350-40 &#x201c;Internal Use Software,&#x201d; depending on the intended use of the software being developed. Software development costs are capitalized and amortized over the estimated product life on a straight-line basis. The Company analyzes the net realizable value of capitalized software development costs on at least an annual basis and has determined that there is no indication of impairment of the capitalized software development costs as forecasted future sales are adequate to support the carrying values.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for income taxes in accordance with ASC 740, &#x201c;Income Taxes.&#x201d; Under ASC 740, deferred tax assets and liabilities are recognized for the estimated future tax consequences of temporary differences and income tax credits. Deferred tax assets and liabilities are measured by applying enacted statutory tax rates that are applicable to the future years in which deferred tax assets or liabilities are expected to be settled or realized for differences between the financial statement carrying amounts and the tax bases of existing assets and liabilities. Any change in tax rates on deferred tax assets and liabilities is recognized in net income in the period in which the tax rate change is enacted. We record a valuation allowance that reduces deferred tax assets when it is "more likely than not" that deferred tax assets will not be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We follow the provisions of ASC 740 related to accounting for uncertainty in income taxes. The accounting estimates related to liabilities for uncertain tax positions require us to make judgments regarding the sustainability of each uncertain tax position based on its technical merits. If we determine it is more likely than not that a tax position will be sustained based on its technical merits, we record the impact of the position in our condensed consolidated financial statements at the largest amount that is greater than fifty percent likely of being realized upon ultimate settlement. These estimates are updated at each reporting date based on the facts, circumstances and information available. We are also required to assess at each reporting date whether it is reasonably possible that any significant increases or decreases to our unrecognized tax benefits will occur during the next 12 months.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The provision for income taxes in interim periods is computed by applying the estimated annual effective tax rate against earnings before income tax expense for the period. In addition, non-recurring or discrete items are recorded during the period in which they occur.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Goodwill and Intangible Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill is recorded for the difference between the aggregate consideration paid for an acquisition and the fair value of net tangible and intangible assets acquired and liabilities assumed. Goodwill is not amortized, but rather tested for potential impairment. We evaluate the impairment of goodwill in accordance with ASC 350, &#x201c;Intangibles - Goodwill and Other,&#x201d; which requires goodwill and indefinite-lived intangible assets to be assessed on at least an annual basis, as of December 31 each year, for impairment using a fair value basis. Between annual evaluations, if events occur or circumstances change that would more likely than not reduce the fair value of the reporting unit below its carrying amount, then impairment must be evaluated. Such circumstances could include, but are not limited to: (1) a significant adverse change in legal factors or business climate, or (2) a loss of key contracts or customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The goodwill impairment test is performed at the reporting unit level. The Company estimates and compares the fair value of each reporting unit to its respective carrying value, including goodwill. If the fair value is less than the carrying value, the amount of impairment expense is equal to the difference between the reporting unit's fair value and the reporting unit's carrying value. Goodwill is amortized and deducted over a 15-year period for tax purposes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets with finite lives are carried at cost, less accumulated amortization. Amortization is computed using the method that best reflects how their economic benefits are utilized or, if a pattern of economic benefits cannot be reliably determined, on a straight-line basis over their estimated useful lives. Intangible assets with finite lives are assessed for impairment whenever events or changes in circumstances indicate that the carrying value may not be recoverable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under our 2016 Omnibus Long-Term Incentive Plan, as amended (the &#x201c;2016 LTIP&#x201d;), we have the ability to award restricted stock units with time-based vesting (&#x201c;Service-Based RSUs&#x201d;), and restricted stock units with performance-based vesting (&#x201c;Performance-Based RSUs&#x201d;) to senior executives, directors, employees and other eligible service providers. Under the 2016 LTIP, our Board of Directors or, by designation of authority, the Management Development and Compensation Committee of our Board of Directors has the discretion to establish the terms, conditions and criteria of the various awards, including the weighing and vesting schedule of Service-Based RSUs and the performance conditions applicable to the Performance-Based RSUs, including the achievement of certain financial performance criteria or price targets for our common stock. Upon vesting, Service-Based RSUs and Performance-Based RSUs will be settled in the Company&#x2019;s common stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Service-Based RSUs&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; granted to eligible recipients as an incentive generally vest in installments over a period of up to three years from the date of grant. Service-based RSUs granted to senior executives in 2021 and 2022 vest in &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTcyNzQ5NA_12903dbd-17ad-4560-a289-3cdca62caef6"&gt;two&lt;/span&gt; to &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTY0OTI2NzUxODI2MQ_e63fa82c-007b-4413-a687-d993961251c6"&gt;three&lt;/span&gt; annual installments from the date of grant. The grant date fair value per share is equal to the closing stock price on the date of grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Performance-Based RSUs&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; may vest upon the achievement of a defined performance target or at the end of the defined performance period from the date of grant, whichever initially occurs. The grant date fair value per share of these Performance-Based RSUs is equal to the closing stock price on the date of the grant or the fair value of the award on the grant date as determined through an independent valuation for Performance-Based RSUs with market condition. Performance-Based RSUs may vest upon the achievement of certain price targets for the Company&#x2019;s common stock anytime over a three-year period from the date of grant. In order to reflect the substantive characteristics of these market condition awards, the Company employs a Monte Carlo simulation valuation model to calculate the grant date fair value and corresponding requisite service period of the award. Monte Carlo approaches are a class of computational algorithms that rely on repeated random sampling to compute their results. This approach allows the calculation of the value of such awards based on a large number of possible stock price path scenarios.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize these share-based payment transactions when services from the employees are received and recognize a corresponding increase in additional paid-in capital in our condensed consolidated balance sheets, in accordance with ASC 718, "Compensation - Stock Compensation." The measurement objective for these equity awards is the estimated fair value at the date of grant of the equity instruments that we are obligated to issue when employees have rendered the requisite service and satisfied any other conditions necessary to earn the right to benefit from the instruments. The compensation expense for an award is recognized ratably over the requisite service period for the entire award, which is the period during which an employee is required to provide service in exchange for an award. Compensation expense for awards with performance conditions is recognized over the requisite service period if it is probable that the performance condition will be satisfied. If such performance conditions are not or are no longer considered probable, no compensation expense for these awards is recognized, and any previously recognized expense is reversed. If the performance condition is achieved prior to the completion of the requisite service period, any unrecognized compensation expense will be recognized in the period the performance condition is achieved. Compensation expense for awards with market conditions is recognized over the derived service period, or sooner, if the market condition is achieved. Previously recognized expense for awards with market conditions will never be reversed even if the market conditions is never achieved. We recognize forfeitures of share-based compensation awards as they occur. Share-based compensation expense is recognized as part of cost of sales and selling, general and administrative expenses in our condensed consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Net Earnings (Loss) per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic net earnings (loss) per share is computed by dividing the net earnings (loss) by the weighted-average number of common shares outstanding for the period, without consideration for potentially dilutive securities. Diluted net earnings (loss) per share is computed by dividing the net earnings (loss) by the weighted-average number of shares of common stock and dilutive common stock equivalents outstanding for the period determined using the treasury-stock and if-converted methods. Dilutive common stock equivalents are comprised of unvested restricted common stock and warrants.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the period of net loss, potentially dilutive securities are not included in the calculation of diluted net earnings (loss) per share, because to do so would be anti-dilutive. Potentially dilutive securities are as follows (in common stock equivalent shares, in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022 &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:700;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="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:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested restricted stock&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:'Times New Roman',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 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,167&#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:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Common stock warrants, exercisable at $1.665/sh.&lt;/span&gt;&lt;/div&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;901&#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:'Times New Roman',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-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:'Times New Roman',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-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 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,068&#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:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&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; For the three months ended March 31, 2022, the weighted-average unvested restricted stock of approximately 4&#160;million shares were anti-dilutive and were excluded in the computation of the potentially dilutive securities because the hypothetical repurchase of shares exceeds the unvested restricted stocks using the treasury stock method.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Other Comprehensive Income (Loss)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our functional currency is the U.S. Dollar. For one of our wholly-owned subsidiaries, the functional currency is the local currency. For this subsidiary, the translation of its foreign currency into U.S. Dollars is performed for assets and liabilities using current foreign currency exchange rates in effect at the balance sheet date and for revenue and expense accounts using average foreign currency exchange rates during the periods presented. Translation gains and losses are included in stockholders&#x2019; equity as a component of accumulated other comprehensive income (loss).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accumulated other comprehensive income (loss) included within stockholders&#x2019; equity consists of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;March 31, 2022&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2021&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cumulative foreign currency translation loss&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(105)&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(134)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cumulative actuarial gain on pension liability adjustment&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;107&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;107&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accumulated other comprehensive income (loss)&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(27)&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:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Recent Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Changes to U.S. GAAP are established by the Financial Accounting Standards Board ("FASB") in the form of accounting standards updates ("ASUs") to the FASB's ASC. We consider the applicability and impact of all recent ASUs. ASUs not listed below were assessed and determined to be not applicable. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Accounting Pronouncements Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2020, the FASB issued ASU No. 2020-04, &#x201c;Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting,&#x201d; which provides optional expedients and exceptions for a limited period of time to ease the potential burden in accounting for contracts, hedging relationship and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. This amendment is effective for all entities as of March 12, 2020 through December 31, 2022. The adoption of this ASU did not have a material impact on our condensed consolidated financial position, results of operations or cash flows.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Accounting Pronouncements Not Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2021, the FASB issued ASU No. 2021-08, &#x201c;Business Combination (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers,&#x201d; which requires entities to apply Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. The ASU improves comparability after the business combination by providing consistent recognition and measurement guidance for revenue contracts with customers acquired in a business combination and revenue contracts with customers not acquired in a business combination. Entities should apply the amendments prospectively to business combinations that occur after the effective date. This standard will be effective for reporting periods beginning after December 15, 2022, with early adoption permitted. While we are currently assessing the impact of the adoption of this ASU, we do not believe the adoption of this ASU will have a material impact on our condensed consolidated financial position, results of operations and cash flows.&lt;/span&gt;&lt;/div&gt;</us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock>
    <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired
      contextRef="i3d231127f5604d6f9091ead216d97081_I20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNjIz_37eab535-f039-4316-8e9a-3eb3a56dfcff"
      unitRef="number">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
    <us-gaap:StockholdersEquityNoteStockSplitConversionRatio1
      contextRef="i8fb91c32dff84ec6bf9f8aa2d13cdcff_D20201112-20201112"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTY3ODk3Mg_f739844c-6403-4d78-a6f0-dad1e9ebae15"
      unitRef="number">0.794</us-gaap:StockholdersEquityNoteStockSplitConversionRatio1>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="ib49240c2bfce4f55a8cc65e97fc824c1_D20201119-20201119"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfOTAz_e263c336-d8d1-4679-b6d4-12f323f01378"
      unitRef="shares">17200000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:SharePrice
      contextRef="ifa6106707e5540529d0e93f28c5b6b52_I20201119"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfOTQ3_21cdf8e7-a1cc-4845-99e0-57766f4141fa"
      unitRef="usdPerShare">17.00</us-gaap:SharePrice>
    <us-gaap:ProceedsFromIssuanceInitialPublicOffering
      contextRef="ib49240c2bfce4f55a8cc65e97fc824c1_D20201119-20201119"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTAwMg_cd691fca-f4c7-4326-9ef5-d370fb7110f3"
      unitRef="usd">272800000</us-gaap:ProceedsFromIssuanceInitialPublicOffering>
    <us-gaap:PaymentsForRepurchaseOfConvertiblePreferredStock
      contextRef="if657f51eca0e44f4b3339f51a6ea7206_D20201119-20201119"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTAyOQ_a07dc216-2bdb-4431-9f7b-8965d9039e15"
      unitRef="usd">108900000</us-gaap:PaymentsForRepurchaseOfConvertiblePreferredStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i9b22192161814ba5ae5f99c40f449df6_D20201119-20201119"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTIxOA_f28d57e6-7a0f-4c65-bde1-8a92bd60b34e"
      unitRef="usd">30000000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:RepaymentsOfDebt
      contextRef="ib49240c2bfce4f55a8cc65e97fc824c1_D20201119-20201119"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTI5NQ_d36f6b1e-8620-404d-892b-3e589916a25d"
      unitRef="usd">21000000</us-gaap:RepaymentsOfDebt>
    <us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction
      contextRef="i934b8136ca8e4bc3be62d0055d67c2cb_D20210406-20210406"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTY3OTQwNA_f88b3025-7b25-4499-a9cb-d24d82750df3"
      unitRef="shares">9100000</us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction>
    <us-gaap:SharePrice
      contextRef="i128f09764d614a66b90074d1cb09df52_I20210406"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTY3OTQ0OQ_4575b527-2355-4863-99bd-8e3bb4d3e089"
      unitRef="usdPerShare">33.00</us-gaap:SharePrice>
    <tls:SaleOfStockNumberOfSharesIssuedByCertainExistingShareholders
      contextRef="i934b8136ca8e4bc3be62d0055d67c2cb_D20210406-20210406"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTY3OTUwNQ_940ba0f3-ea05-4d4d-8525-865e227b542b"
      unitRef="shares">7000000</tls:SaleOfStockNumberOfSharesIssuedByCertainExistingShareholders>
    <us-gaap:ProceedsFromIssuanceInitialPublicOffering
      contextRef="i934b8136ca8e4bc3be62d0055d67c2cb_D20210406-20210406"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTY3OTYxMg_6b06d9ca-1abe-46e0-a92f-d80e4ab89717"
      unitRef="usd">64300000</us-gaap:ProceedsFromIssuanceInitialPublicOffering>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="ia1681bdcb0504aecbe9e98089b7a644e_D20210419-20210419"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTY4MDA4Mg_9537a06f-4e85-4b2f-99ef-b548ef049483"
      unitRef="usd">1300000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="ia1681bdcb0504aecbe9e98089b7a644e_D20210419-20210419"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTY4MDA5NA_f9de7ad1-7a52-41be-bc79-f85697e1eee2"
      unitRef="shares">39682</us-gaap:StockRepurchasedDuringPeriodShares>
    <tls:PaymentsToRepurchaseSharesAndWarrants
      contextRef="ia1681bdcb0504aecbe9e98089b7a644e_D20210419-20210419"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTY3OTc3MA_39d5c07a-917b-4d62-86df-00a18b1ad53a"
      unitRef="usd">26900000</tls:PaymentsToRepurchaseSharesAndWarrants>
    <tls:WarrantRepurchasedDuringPeriodShares
      contextRef="ia1681bdcb0504aecbe9e98089b7a644e_D20210419-20210419"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTY4MDEwNA_195cfa94-6642-4b90-b369-cc75b82a91e5"
      unitRef="shares">900970</tls:WarrantRepurchasedDuringPeriodShares>
    <us-gaap:ConsolidationPolicyTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNDM5ODA0NjYwNjIwOA_cbbcafd9-9a81-455a-9626-70337ad7ebc7">The accompanying condensed consolidated financial statements include the accounts of Telos and its subsidiaries, including Ubiquity.com, Inc., Xacta Corporation, Telos ID, Teloworks, and Telos APAC, all of whose issued and outstanding share capital is wholly-owned directly and indirectly by Telos Corporation. All intercompany transactions have been eliminated in consolidation.</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNDM5ODA0NjYwNjIwOQ_fc9d39d8-ee20-4b5c-9d08-bd539c538621">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating segments are defined as components of an enterprise for which separate discrete financial information is available and evaluated regularly by the chief operating decision maker (&#x201c;CODM&#x201d;), or decision-making group, in deciding how to allocate resources and assess performance. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the fourth quarter of 2021, we reorganized our internal management reporting structure and the financial results evaluated by our CODM; therefore, we changed our operating segments to align with how our CODM currently oversees the business, allocates resources and evaluates operating performance. As a result of the segment reorganization, we reported two reportable and operating segments: Security Solutions and Secure Networks. Our Security Solutions segment focuses on the Company's cybersecurity, cloud and identity solutions. Our Secure Networks segment provides offerings for enterprise security. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Prior period segment information has been recast to reflect the change. The segment reorganization had no impact on previously reported condensed consolidated financial results.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNDM5ODA0NjYwNjIyMg_2c362512-55c2-41e3-8007-8b07537e2b5d"
      unitRef="segment">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfOperatingSegments
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNDM5ODA0NjYwNjIyMg_fb05c078-a706-428f-bdad-42243a903fe5"
      unitRef="segment">2</us-gaap:NumberOfOperatingSegments>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="iba8ca2d8643445e5a8d32c14bd53a93d_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTcyNzY2Ng_6ebeeba3-f44a-46e9-b1dd-f1bd8b5d3c1b"
      unitRef="usd">100000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="iba8ca2d8643445e5a8d32c14bd53a93d_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTcyNzY3Mw_b9db8176-e993-40bc-963d-45965412a9b0"
      unitRef="usd">-2400000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:ScheduleOfErrorCorrectionsAndPriorPeriodAdjustmentsTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNDk0NzgwMjQxODcwMg_c1197f3b-15d9-4687-8975-3a32babaec86">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table reflects the impact of the correction on all affected line items of the Company's previously reported condensed consolidated financial statements for the period ended March 31, 2021 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&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:38.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.785%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 31, 2021&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="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Previously Reported&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Error Correction&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;As Adjusted&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Condensed Consolidated Statement of Operations&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of sales - Services&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,490&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Costs and expenses&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,288&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;General and administrative&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;112&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,076&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Selling, general and administrative expenses&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;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;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,963&#160;&lt;/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="margin-top:10pt"&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:38.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.785%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 31, 2021&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="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Previously Reported&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Error Correction&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;As Adjusted&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Condensed Consolidated Statement of Cash Flows&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Changes in other operating assets and liabilities&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,584)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7,148)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash used in operating activities&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,318)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,882)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Distribution to Telos ID Class B member - non-controlling interest&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,436)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,436)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash used in financing activities&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(321)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,436)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,757)&lt;/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;</us-gaap:ScheduleOfErrorCorrectionsAndPriorPeriodAdjustmentsTextBlock>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="id6e64dba15b44bda8685a7c0abd3eef9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfMy0xLTEtMS02MTE1Ng_ce74da86-bcf1-4bb0-bbd7-d3a08cffbc52"
      unitRef="usd">39602000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="ibeec4aebfbcd46bf94fdf08064298046_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfMy0zLTEtMS02MTE1Ng_a9f527e0-197d-4686-bff1-9ac810db93ff"
      unitRef="usd">-112000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i771a28c28afa416c97b861530c5d58a5_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfMy01LTEtMS02MTE1Ng_54730b19-077b-4184-af34-d620c000f7c4"
      unitRef="usd">39490000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i80b9ba922d1248b28de9aaf3bf541824_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfNC0xLTEtMS02MTE1Ng_5b33d82a-a48b-47c0-b68b-7405d6bed7a1"
      unitRef="usd">41400000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i349f23655e194026b95b2e59cfcd3c51_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfNC0zLTEtMS02MTE1Ng_9f393654-af31-4c16-8acc-0150a8c47dd8"
      unitRef="usd">-112000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i40cccfca3c37474eb4ee089ff24dbf33_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfNC01LTEtMS02MTE1Ng_4f46ef26-7223-466c-b149-fe730d57ee87"
      unitRef="usd">41288000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i411efbfb5aa4400b9af32b836bf2c3ac_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfNS0xLTEtMS02MTE1Ng_a53bf5c8-d982-4760-b788-402582bc8eb9"
      unitRef="usd">19964000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="iba8ca2d8643445e5a8d32c14bd53a93d_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfNS0zLTEtMS02MTE1Ng_d153e8f4-c8ca-422e-83cc-c7c06fa03cc7"
      unitRef="usd">112000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfNS01LTEtMS02MTE1Ng_8187d2a3-6ceb-4ebf-b0a3-371a00e15a38"
      unitRef="usd">20076000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i411efbfb5aa4400b9af32b836bf2c3ac_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfNi0xLTEtMS02MTE1Ng_9bad96e5-b883-4927-a7af-813ff7410b56"
      unitRef="usd">27851000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="iba8ca2d8643445e5a8d32c14bd53a93d_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfNi0zLTEtMS02MTE1Ng_13c9378c-81ac-4612-b213-033b7ea4d2e0"
      unitRef="usd">112000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjBiMjIzZWQ1YmQ3YjQzMDNiM2NkYzVmZjYxNTNhNTM4L3RhYmxlcmFuZ2U6MGIyMjNlZDViZDdiNDMwM2IzY2RjNWZmNjE1M2E1MzhfNi01LTEtMS02MTE1Ng_6c962469-dedf-417d-8c07-1dd9a4f4db28"
      unitRef="usd">27963000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="i411efbfb5aa4400b9af32b836bf2c3ac_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfNS0xLTEtMS02MTE2Mg_08a5fccf-454b-4a9b-8648-38ba35418b0c"
      unitRef="usd">9584000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="iba8ca2d8643445e5a8d32c14bd53a93d_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfNS0zLTEtMS02MTE2Mg_3b768b84-91cf-4059-8c5d-754af333a4b1"
      unitRef="usd">-2436000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfNS01LTEtMS02MTE2Mg_0ce48219-b2d0-4d90-8a68-d50a2b2acb94"
      unitRef="usd">7148000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i411efbfb5aa4400b9af32b836bf2c3ac_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfNi0xLTEtMS02MTE2Mg_f9809937-60dc-4d0e-9b5a-86e133bd4e70"
      unitRef="usd">-9318000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="iba8ca2d8643445e5a8d32c14bd53a93d_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfNi0zLTEtMS02MTE2Mg_496563ea-ded2-4e13-9529-7e6beb4941de"
      unitRef="usd">2436000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfNi01LTEtMS02MTE2Mg_8ca22974-346d-4f14-b0ac-4972b552d148"
      unitRef="usd">-6882000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToMinorityShareholders
      contextRef="i411efbfb5aa4400b9af32b836bf2c3ac_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfNy0xLTEtMS02MTE2Mg_84805d3f-c66b-42a0-9eb9-6bb0f25e2ffe"
      unitRef="usd">0</us-gaap:PaymentsToMinorityShareholders>
    <us-gaap:PaymentsToMinorityShareholders
      contextRef="iba8ca2d8643445e5a8d32c14bd53a93d_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfNy0zLTEtMS02MTE2Mg_28f9c82a-8700-4c1c-94bc-01626d219d76"
      unitRef="usd">2436000</us-gaap:PaymentsToMinorityShareholders>
    <us-gaap:PaymentsToMinorityShareholders
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfNy01LTEtMS02MTE2Mg_4406c8bd-31a6-4f43-a2ca-f8b1c4861d8a"
      unitRef="usd">2436000</us-gaap:PaymentsToMinorityShareholders>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i411efbfb5aa4400b9af32b836bf2c3ac_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfOC0xLTEtMS02MTE2Mg_cc2e8bb5-f7d8-406e-a57c-94f41a4e6084"
      unitRef="usd">-321000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="iba8ca2d8643445e5a8d32c14bd53a93d_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfOC0zLTEtMS02MTE2Mg_5ee110a9-0ad3-4b21-baa0-76b3f17f6aa0"
      unitRef="usd">-2436000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmIyMWU2N2FmZjlkNTQ1YzI5YjM1NmYxYmRiZWQxMWYzL3RhYmxlcmFuZ2U6YjIxZTY3YWZmOWQ1NDVjMjliMzU2ZjFiZGJlZDExZjNfOC01LTEtMS02MTE2Mg_14a22bd6-708a-43c1-ab6d-3b3bbf636b5c"
      unitRef="usd">-2757000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:UseOfEstimates
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwNDE_f83b13fa-afcf-4e9d-8441-abd70820a63e">The preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of revenue, expenses, assets and liabilities and disclosure of contingent assets and liabilities. The Company regularly assesses these estimates; however, actual results could differ from those estimates. We base our estimates on historical experience, currently available information and various other assumptions that we believe are reasonable under the circumstances. The most significant items involving management estimates include estimates of revenue recognition, allowance for credit losses, allowance for inventory obsolescence, the valuation allowance for deferred tax assets, the provision for income taxes, share-based compensation, contingencies and litigation, and valuation of intangibles and goodwill. The impact of changes in estimates is recorded in the period in which they become known.</us-gaap:UseOfEstimates>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNDM5ODA0NjYwNjIxMQ_02c95836-028f-4cda-b94c-a4f07a994c35">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accounts receivable are stated at the invoiced amount, less an allowance for credit losses. The allowance for credit losses is management's best estimate of current expected credit losses over the contractual life of the accounts receivable. Accounts receivable balances are written off against the allowance for credit losses when management deems the balances uncollectible.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Receivables include billed and unbilled receivables. Unbilled receivables, substantially all of which are expected to be billed and collected within one year, are stated at their estimated realization value and consist of costs and fees billable on contract completion or the occurrence of a specific event, other than the passage of time.&lt;/span&gt;&lt;/div&gt;</us-gaap:TradeAndOtherAccountsReceivablePolicy>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwMzg_908c7354-53c1-46a8-a206-032713b30e0d">Inventories are stated at the lower of cost or net realizable value, where cost is determined using the weighted-average method. Substantially all inventories consist of purchased off-the-shelf hardware and software, and component computer parts used in connection with system integration services that we perform. Provisions have been made to reduce all obsolete, slow-moving or unsaleable inventories to their net realizable values. This provision is based on our overall obsolescence experience and our assessment of future inventory requirements. This charge is taken primarily due to the age of the specific inventory and the significant additional costs that would be necessary to upgrade to current standards, as well as the lack of forecasted sales for such inventory in the near future.</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:InventoryGross
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTg1Nzg_c51e8e4d-dd0a-4bbd-b614-b48016fe72b2"
      unitRef="usd">2900000</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTg1ODU_128bfde5-b1b6-400a-8d20-6934dfba0d46"
      unitRef="usd">2100000</us-gaap:InventoryGross>
    <us-gaap:InventoryValuationReserves
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTg3Mzc_55c334d9-4450-4260-8dca-fe61719a3440"
      unitRef="usd">800000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTY0OTI2NzUxMzYxOQ_95b4d7f4-c20d-47d3-a16b-be88b0c735f1"
      unitRef="usd">900000</us-gaap:InventoryValuationReserves>
    <us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwNDQ_4db1349e-4587-41f6-9f73-a61dd2a4b216">We account for development costs of software in accordance with Accounting Standards Codification ("ASC") Topic 985-20, &#x201c;Software &#x2013; Costs of Software to be Sold, Leased, or Marketed&#x201d; and ASC Topic 350-40 &#x201c;Internal Use Software,&#x201d; depending on the intended use of the software being developed. Software development costs are capitalized and amortized over the estimated product life on a straight-line basis. The Company analyzes the net realizable value of capitalized software development costs on at least an annual basis and has determined that there is no indication of impairment of the capitalized software development costs as forecasted future sales are adequate to support the carrying values.</us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwNDU_b70f6c96-414f-4e47-9c95-9cc90c394fc8">We account for income taxes in accordance with ASC 740, &#x201c;Income Taxes.&#x201d; Under ASC 740, deferred tax assets and liabilities are recognized for the estimated future tax consequences of temporary differences and income tax credits. Deferred tax assets and liabilities are measured by applying enacted statutory tax rates that are applicable to the future years in which deferred tax assets or liabilities are expected to be settled or realized for differences between the financial statement carrying amounts and the tax bases of existing assets and liabilities. Any change in tax rates on deferred tax assets and liabilities is recognized in net income in the period in which the tax rate change is enacted. We record a valuation allowance that reduces deferred tax assets when it is "more likely than not" that deferred tax assets will not be realized.&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We follow the provisions of ASC 740 related to accounting for uncertainty in income taxes. The accounting estimates related to liabilities for uncertain tax positions require us to make judgments regarding the sustainability of each uncertain tax position based on its technical merits. If we determine it is more likely than not that a tax position will be sustained based on its technical merits, we record the impact of the position in our condensed consolidated financial statements at the largest amount that is greater than fifty percent likely of being realized upon ultimate settlement. These estimates are updated at each reporting date based on the facts, circumstances and information available. We are also required to assess at each reporting date whether it is reasonably possible that any significant increases or decreases to our unrecognized tax benefits will occur during the next 12 months.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The provision for income taxes in interim periods is computed by applying the estimated annual effective tax rate against earnings before income tax expense for the period. In addition, non-recurring or discrete items are recorded during the period in which they occur.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwMzU_087cbb3a-7af1-4063-89bd-44027276240a">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill is recorded for the difference between the aggregate consideration paid for an acquisition and the fair value of net tangible and intangible assets acquired and liabilities assumed. Goodwill is not amortized, but rather tested for potential impairment. We evaluate the impairment of goodwill in accordance with ASC 350, &#x201c;Intangibles - Goodwill and Other,&#x201d; which requires goodwill and indefinite-lived intangible assets to be assessed on at least an annual basis, as of December 31 each year, for impairment using a fair value basis. Between annual evaluations, if events occur or circumstances change that would more likely than not reduce the fair value of the reporting unit below its carrying amount, then impairment must be evaluated. Such circumstances could include, but are not limited to: (1) a significant adverse change in legal factors or business climate, or (2) a loss of key contracts or customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The goodwill impairment test is performed at the reporting unit level. The Company estimates and compares the fair value of each reporting unit to its respective carrying value, including goodwill. If the fair value is less than the carrying value, the amount of impairment expense is equal to the difference between the reporting unit's fair value and the reporting unit's carrying value. Goodwill is amortized and deducted over a 15-year period for tax purposes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets with finite lives are carried at cost, less accumulated amortization. Amortization is computed using the method that best reflects how their economic benefits are utilized or, if a pattern of economic benefits cannot be reliably determined, on a straight-line basis over their estimated useful lives. Intangible assets with finite lives are assessed for impairment whenever events or changes in circumstances indicate that the carrying value may not be recoverable.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <tls:GoodwillAmortizationPeriod
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMjY3Njg_22b6d92e-9461-4413-960f-19125675b852">P15Y</tls:GoodwillAmortizationPeriod>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwMzk_6e054733-3744-4a1c-bf07-247b28fc2ae5">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under our 2016 Omnibus Long-Term Incentive Plan, as amended (the &#x201c;2016 LTIP&#x201d;), we have the ability to award restricted stock units with time-based vesting (&#x201c;Service-Based RSUs&#x201d;), and restricted stock units with performance-based vesting (&#x201c;Performance-Based RSUs&#x201d;) to senior executives, directors, employees and other eligible service providers. Under the 2016 LTIP, our Board of Directors or, by designation of authority, the Management Development and Compensation Committee of our Board of Directors has the discretion to establish the terms, conditions and criteria of the various awards, including the weighing and vesting schedule of Service-Based RSUs and the performance conditions applicable to the Performance-Based RSUs, including the achievement of certain financial performance criteria or price targets for our common stock. Upon vesting, Service-Based RSUs and Performance-Based RSUs will be settled in the Company&#x2019;s common stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Service-Based RSUs&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; granted to eligible recipients as an incentive generally vest in installments over a period of up to three years from the date of grant. Service-based RSUs granted to senior executives in 2021 and 2022 vest in &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTA5OTUxMTcyNzQ5NA_12903dbd-17ad-4560-a289-3cdca62caef6"&gt;two&lt;/span&gt; to &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMTY0OTI2NzUxODI2MQ_e63fa82c-007b-4413-a687-d993961251c6"&gt;three&lt;/span&gt; annual installments from the date of grant. The grant date fair value per share is equal to the closing stock price on the date of grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Performance-Based RSUs&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; may vest upon the achievement of a defined performance target or at the end of the defined performance period from the date of grant, whichever initially occurs. The grant date fair value per share of these Performance-Based RSUs is equal to the closing stock price on the date of the grant or the fair value of the award on the grant date as determined through an independent valuation for Performance-Based RSUs with market condition. Performance-Based RSUs may vest upon the achievement of certain price targets for the Company&#x2019;s common stock anytime over a three-year period from the date of grant. In order to reflect the substantive characteristics of these market condition awards, the Company employs a Monte Carlo simulation valuation model to calculate the grant date fair value and corresponding requisite service period of the award. Monte Carlo approaches are a class of computational algorithms that rely on repeated random sampling to compute their results. This approach allows the calculation of the value of such awards based on a large number of possible stock price path scenarios.&lt;/span&gt;&lt;/div&gt;We recognize these share-based payment transactions when services from the employees are received and recognize a corresponding increase in additional paid-in capital in our condensed consolidated balance sheets, in accordance with ASC 718, "Compensation - Stock Compensation." The measurement objective for these equity awards is the estimated fair value at the date of grant of the equity instruments that we are obligated to issue when employees have rendered the requisite service and satisfied any other conditions necessary to earn the right to benefit from the instruments. The compensation expense for an award is recognized ratably over the requisite service period for the entire award, which is the period during which an employee is required to provide service in exchange for an award. Compensation expense for awards with performance conditions is recognized over the requisite service period if it is probable that the performance condition will be satisfied. If such performance conditions are not or are no longer considered probable, no compensation expense for these awards is recognized, and any previously recognized expense is reversed. If the performance condition is achieved prior to the completion of the requisite service period, any unrecognized compensation expense will be recognized in the period the performance condition is achieved. Compensation expense for awards with market conditions is recognized over the derived service period, or sooner, if the market condition is achieved. Previously recognized expense for awards with market conditions will never be reversed even if the market conditions is never achieved. We recognize forfeitures of share-based compensation awards as they occur. Share-based compensation expense is recognized as part of cost of sales and selling, general and administrative expenses in our condensed consolidated statements of operations.</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i66c26c0bdc6442ea95b831e57b419b60_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNDM5ODA0NjYxNDA0Mg_485f4c49-b97e-48ef-82a5-8023e5d398af">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNDM5ODA0NjYwNjIzNw_a95bfc11-90cf-45d5-a11c-28571dbdd702">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwMzY_c212e48c-a564-4f00-8e08-76bd900e476d">Basic net earnings (loss) per share is computed by dividing the net earnings (loss) by the weighted-average number of common shares outstanding for the period, without consideration for potentially dilutive securities. Diluted net earnings (loss) per share is computed by dividing the net earnings (loss) by the weighted-average number of shares of common stock and dilutive common stock equivalents outstanding for the period determined using the treasury-stock and if-converted methods. Dilutive common stock equivalents are comprised of unvested restricted common stock and warrants.</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwNDA_b204a7cb-7eb1-4445-acf0-20d3dcc2d8e8">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the period of net loss, potentially dilutive securities are not included in the calculation of diluted net earnings (loss) per share, because to do so would be anti-dilutive. Potentially dilutive securities are as follows (in common stock equivalent shares, in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022 &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:700;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="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:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested restricted stock&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:'Times New Roman',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 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,167&#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:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Common stock warrants, exercisable at $1.665/sh.&lt;/span&gt;&lt;/div&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;901&#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:'Times New Roman',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-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:'Times New Roman',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-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 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,068&#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:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&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; For the three months ended March 31, 2022, the weighted-average unvested restricted stock of approximately 4&#160;million shares were anti-dilutive and were excluded in the computation of the potentially dilutive securities because the hypothetical repurchase of shares exceeds the unvested restricted stocks using the treasury stock method.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i2d5b0e84714a454b96c7b3ba05dc2b98_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjg2MDIzMTNjNGIwZTQ1ODJhMDcxYWQzOTY4NTJlN2Q3L3RhYmxlcmFuZ2U6ODYwMjMxM2M0YjBlNDU4MmEwNzFhZDM5Njg1MmU3ZDdfMi0xLTEtMS01NzEyNw_f6378988-164c-4c2b-902a-957615881489"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i39bba81b2e424ae6b1738268275c609d_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjg2MDIzMTNjNGIwZTQ1ODJhMDcxYWQzOTY4NTJlN2Q3L3RhYmxlcmFuZ2U6ODYwMjMxM2M0YjBlNDU4MmEwNzFhZDM5Njg1MmU3ZDdfMi0zLTEtMS01NzEyNw_dec75e66-a235-4d53-a390-bd2bee37389f"
      unitRef="shares">3167000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjg2MDIzMTNjNGIwZTQ1ODJhMDcxYWQzOTY4NTJlN2Q3L3RhYmxlcmFuZ2U6ODYwMjMxM2M0YjBlNDU4MmEwNzFhZDM5Njg1MmU3ZDdfMy0wLTEtMS02Nzk4Ni90ZXh0cmVnaW9uOjM5NzIzNzU1NzVkOTRlMTFhNDE4NDE0NDA4NDZmZmY1XzEwOTk1MTE2Mjc4MzQ_80cfebcd-4b04-43e4-b0b7-40bb4bcc5354"
      unitRef="usdPerShare">1.665</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ic5b905a18d8248f4ba312b60c60a7243_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjg2MDIzMTNjNGIwZTQ1ODJhMDcxYWQzOTY4NTJlN2Q3L3RhYmxlcmFuZ2U6ODYwMjMxM2M0YjBlNDU4MmEwNzFhZDM5Njg1MmU3ZDdfMy0xLTEtMS01NzEyNw_03392031-b0b9-4cad-b377-8d60f5917242"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ia3bfb56471de46bdb1d6ede2430de15c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjg2MDIzMTNjNGIwZTQ1ODJhMDcxYWQzOTY4NTJlN2Q3L3RhYmxlcmFuZ2U6ODYwMjMxM2M0YjBlNDU4MmEwNzFhZDM5Njg1MmU3ZDdfMy0zLTEtMS01NzEyNw_147034d8-7748-461e-aaaa-07f896913bb9"
      unitRef="shares">901000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjg2MDIzMTNjNGIwZTQ1ODJhMDcxYWQzOTY4NTJlN2Q3L3RhYmxlcmFuZ2U6ODYwMjMxM2M0YjBlNDU4MmEwNzFhZDM5Njg1MmU3ZDdfNC0xLTEtMS01NzEyNw_8b5f1799-4c53-4c88-af95-2786a8c543c1"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOjg2MDIzMTNjNGIwZTQ1ODJhMDcxYWQzOTY4NTJlN2Q3L3RhYmxlcmFuZ2U6ODYwMjMxM2M0YjBlNDU4MmEwNzFhZDM5Njg1MmU3ZDdfNC0zLTEtMS01NzEyNw_3e61893f-9a23-4390-89ad-58881239169c"
      unitRef="shares">4068000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:WeightedAverageNumberOfSharesRestrictedStock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNDM5ODA0NjYxMDk4Mg_1190e9f2-6c35-4d34-9a2e-3280772f93fe"
      unitRef="shares">4000000</us-gaap:WeightedAverageNumberOfSharesRestrictedStock>
    <us-gaap:ComprehensiveIncomePolicyPolicyTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwNDY_2d9ee1a2-e17d-4220-b526-3b9168c3b1cb">Our functional currency is the U.S. Dollar. For one of our wholly-owned subsidiaries, the functional currency is the local currency. For this subsidiary, the translation of its foreign currency into U.S. Dollars is performed for assets and liabilities using current foreign currency exchange rates in effect at the balance sheet date and for revenue and expense accounts using average foreign currency exchange rates during the periods presented. Translation gains and losses are included in stockholders&#x2019; equity as a component of accumulated other comprehensive income (loss).</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
    <us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfMzMwNDM_7eced888-a0a6-4acf-957a-69128c1d3934">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accumulated other comprehensive income (loss) included within stockholders&#x2019; equity consists of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;March 31, 2022&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2021&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cumulative foreign currency translation loss&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(105)&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(134)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cumulative actuarial gain on pension liability adjustment&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;107&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;107&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accumulated other comprehensive income (loss)&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(27)&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:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmZkODQzY2JlNTg2NjQ3NjM5MjM2ZjIzYzNiNmY0MWM5L3RhYmxlcmFuZ2U6ZmQ4NDNjYmU1ODY2NDc2MzkyMzZmMjNjM2I2ZjQxYzlfMS0xLTEtMS01NzEyNw_e351d7e9-db56-4a99-9c0b-9c84bca3ecf7"
      unitRef="usd">-105000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmZkODQzY2JlNTg2NjQ3NjM5MjM2ZjIzYzNiNmY0MWM5L3RhYmxlcmFuZ2U6ZmQ4NDNjYmU1ODY2NDc2MzkyMzZmMjNjM2I2ZjQxYzlfMS0zLTEtMS01NzEyNw_4122bdf9-ff23-4ada-9472-0f1b41e0a6a1"
      unitRef="usd">-134000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmZkODQzY2JlNTg2NjQ3NjM5MjM2ZjIzYzNiNmY0MWM5L3RhYmxlcmFuZ2U6ZmQ4NDNjYmU1ODY2NDc2MzkyMzZmMjNjM2I2ZjQxYzlfMi0xLTEtMS01NzEyNw_30eac62c-a4d7-4622-b522-2acbdb844997"
      unitRef="usd">-107000</us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmZkODQzY2JlNTg2NjQ3NjM5MjM2ZjIzYzNiNmY0MWM5L3RhYmxlcmFuZ2U6ZmQ4NDNjYmU1ODY2NDc2MzkyMzZmMjNjM2I2ZjQxYzlfMi0zLTEtMS01NzEyNw_a0f329d5-d53f-45de-a4cb-bf86a211f8e8"
      unitRef="usd">-107000</us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmZkODQzY2JlNTg2NjQ3NjM5MjM2ZjIzYzNiNmY0MWM5L3RhYmxlcmFuZ2U6ZmQ4NDNjYmU1ODY2NDc2MzkyMzZmMjNjM2I2ZjQxYzlfMy0xLTEtMS01NzEyNw_b6ee3384-c2ba-4f25-b73d-0d869fb16fcf"
      unitRef="usd">2000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RhYmxlOmZkODQzY2JlNTg2NjQ3NjM5MjM2ZjIzYzNiNmY0MWM5L3RhYmxlcmFuZ2U6ZmQ4NDNjYmU1ODY2NDc2MzkyMzZmMjNjM2I2ZjQxYzlfMy0zLTEtMS01NzEyNw_03a44c50-f354-464b-830e-a713550ec5d0"
      unitRef="usd">-27000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80MC9mcmFnOmY4NGI0MzkxMmNjMDQwMzA4YWUyZDk4MWY1NmE1OGVkL3RleHRyZWdpb246Zjg0YjQzOTEyY2MwNDAzMDhhZTJkOTgxZjU2YTU4ZWRfNDM5ODA0NjYwNjIyMA_f409c2d1-1c62-453c-bffb-8cf4c2f6d4f7">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Changes to U.S. GAAP are established by the Financial Accounting Standards Board ("FASB") in the form of accounting standards updates ("ASUs") to the FASB's ASC. We consider the applicability and impact of all recent ASUs. ASUs not listed below were assessed and determined to be not applicable. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Accounting Pronouncements Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2020, the FASB issued ASU No. 2020-04, &#x201c;Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting,&#x201d; which provides optional expedients and exceptions for a limited period of time to ease the potential burden in accounting for contracts, hedging relationship and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. This amendment is effective for all entities as of March 12, 2020 through December 31, 2022. The adoption of this ASU did not have a material impact on our condensed consolidated financial position, results of operations or cash flows.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Accounting Pronouncements Not Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2021, the FASB issued ASU No. 2021-08, &#x201c;Business Combination (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers,&#x201d; which requires entities to apply Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. The ASU improves comparability after the business combination by providing consistent recognition and measurement guidance for revenue contracts with customers acquired in a business combination and revenue contracts with customers not acquired in a business combination. Entities should apply the amendments prospectively to business combinations that occur after the effective date. This standard will be effective for reporting periods beginning after December 15, 2022, with early adoption permitted. While we are currently assessing the impact of the adoption of this ASU, we do not believe the adoption of this ASU will have a material impact on our condensed consolidated financial position, results of operations and cash flows.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl80OTQ3ODAyMzY2MTk3_acd524a2-54a1-4b0a-932e-45f1178fb312">Revenue&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for revenue in accordance with ASC Topic 606, &#x201c;Revenue from Contracts with Customers.&#x201d; The unit of account in ASC 606 is a performance obligation, which is a promise in a contract with a customer to transfer a good or service to the customer. ASC 606 prescribes a five-step model for recognizing revenue that includes identifying the contract with the customer, determining the performance obligation(s), determining the transaction price, allocating the transaction price to the performance obligation(s), and recognizing revenue as the performance obligations are satisfied. Timing of the satisfaction of performance obligations varies across our businesses due to our diverse product and service mix, customer base, and contractual terms. Significant judgment can be required in determining certain performance obligations, and these determinations could change the amount of revenue and profit recorded in a given period. Our contracts may have a single performance obligation or multiple performance obligations. When there are multiple performance obligations within a contract, we allocate the transaction price, net of any discounts, to each performance obligation based on the standalone selling price of the product or service underlying each performance obligation. Our contracts with the U.S. government are generally subject to Federal Acquisition Regulation ("FAR") and the price is typically based on estimated or actual costs plus a reasonable profit margin. As such, the standalone selling price of products or services in our contracts with the U.S. government is typically equal to the selling price stated in the contract. For non-U.S. government contracts with multiple performance obligations, standalone selling price is the observable price of a good or service when Telos sells that good or service separately in similar circumstances and to similar customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contracts are routinely and often modified to account for changes in contract requirements, specifications, quantities, or price. Depending on the nature of the modification, we determine whether to account for the modification as an adjustment to the existing contract or as a new contract. Generally, modifications are not distinct from the existing contract due to the significant interrelatedness of the performance obligations and are therefore accounted for as an adjustment to the existing contract, and recognized as a cumulative adjustment to revenue (as either an increase or reduction of revenue) based on the modification&#x2019;s effect on progress toward completion of a performance obligation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of our revenue is recognized over time, as control is transferred continuously to our customers who receive and consume benefits as we perform, and is classified as services revenue. Revenue transferred to customers over time accounted for 96% and 93% of our revenue for the three months ended March 31, 2022 and 2021, respectively. All of our business groups earn services revenue under a variety of contract types, including time and materials, firm-fixed price, firm-fixed price level of effort, and cost-plus fixed fee contract types, which may include variable consideration as discussed further below. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue is recognized over time using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material, subcontractor costs and indirect expenses. This continuous transfer of control to the customer is supported by clauses in our contracts with U.S. government customers whereby the customer may terminate a contract for convenience and then pay for costs incurred plus a profit, at which time the customer would take control of any work in process. For non-U.S. government contracts where we perform as a subcontractor and our order includes similar FAR provisions as the prime contractor&#x2019;s order from the U.S. government, continuous transfer of control is likewise supported by such provisions. For other non-U.S. government customers, continuous transfer of control to such customers is also supported due to general terms in our contracts and rights to recover damages which would include, among other potential damages, the right to payment for our work performed to date plus a reasonable profit.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue that is recognized at a point in time is for the sale of software licenses in our Information Assurance / Xacta&#xae; and Secure Communications business groups and for the sale of resold products in Telos ID and Secure Networks, and is classified as product revenue. Revenue transferred to customers at a point in time accounted for 4% and 7% of our revenue for the three months ended March 31, 2022 and 2021, respectively. Revenue on these contracts is recognized when the customer obtains control of the transferred product or service, which is generally upon delivery of the product to the customer for their use, due to us maintaining control of the product until that point. Orders for the sale of software licenses may contain multiple performance obligations, such as maintenance, training, or consulting services, which are typically delivered over time, consistent with the transfer of control disclosed above for the provision of services. When an order contains multiple performance obligations, we allocate the transaction price to the performance obligations based on the standalone selling price of the product or service underlying each performance obligation. The standalone selling price represents the amount we would sell the product or service to a customer on a standalone basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For certain performance obligations where we are not primarily responsible for fulfilling the promise to provide the goods or services to the customer, do not have inventory risk and have limited discretion in establishing the price for the goods or services, we recognize revenue on a net basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Contract Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Due to the transfer of control over time, revenue is recognized based on progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the performance obligations. We generally use the cost-to-cost measure of progress on a proportional performance basis for our contracts because it best depicts the transfer of control to the customer, which occurs as we incur costs on our contracts. Under the cost-to-cost measure of progress, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenues are recorded proportionally as costs are incurred. Due to the nature of the work required to be performed on certain of our performance obligations, the estimation of total revenue and cost at completion is complex, subject to many variables and requires significant judgment. Contract estimates are based on various assumptions, including labor and subcontractor costs, materials and other direct costs and the complexity of the work to be performed. A significant change in one or more of these estimates could affect the profitability of our contracts. We review and update our contract-related estimates regularly and recognize adjustments in estimated profit on contracts on a cumulative catch-up basis, which may result in an adjustment increasing or decreasing revenue to date on a contract in a particular period that the adjustment is identified. Revenue and profit in future periods of contract performance are recognized using the adjusted estimate.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our contracts may include various types of variable consideration, such as claims (for instance, indirect rate or other equitable adjustments) or incentive fees. We include estimated amounts in the transaction price based on all of the information available to us, including historical information and future estimations, and to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when any uncertainty associated with the variable consideration is resolved.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We provide for anticipated losses on contracts during the period when the loss is determined by recording an expense for the total expected costs that exceeds the total estimated revenue for a performance obligation. No contract losses were recorded during the three months ended March 31, 2022 and 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Historically, most of our contracts do not include award or incentive fees. For incentive fees, we would include such fees in the transaction price to the extent we could reasonably estimate the amount of the fee. With limited historical experience, we have not included any revenue related to incentive fees in our estimated transaction prices. We may include in our contract estimates additional revenue for submitted contract modifications or claims against the customer when we believe we have an enforceable right to the modification or claim, the amount can be estimated reliably and its realization is probable. We consider the contractual/legal basis for the claim (in particular FAR provisions), the facts and circumstances around any additional costs incurred, the reasonableness of those costs and the objective evidence available to support such claims.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For our contracts that have an original duration of one year or less, we use the practical expedient applicable to such contracts and do not consider the time value of money. We capitalize on sales commissions related to proprietary software and related services that are directly tied to sales. We do not elect the practical expedient to expense as incurred the incremental costs of obtaining a contract if the amortization period would have been one year or less. For the sales commissions that are capitalized, we amortize the asset over the expected customer life, which is based on recent and historical data. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have identified two reportable segments. We treat sales to U.S. customers as sales within the U.S. regardless of where the services are performed. Substantially all of our revenues are generated from U.S. customers, international customers are de minimus, therefore the financial information by geographic location is not presented. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables disclose revenue for our operating segments disaggregated by several categories for the three months ended March&#160;31, 2022 and 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;br/&gt;March 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:10pt;font-style:italic;font-weight:700;line-height:100%"&gt;Revenue Type&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Security Solutions&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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Services&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,867&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,130&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Product&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,052&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,699&#160;&lt;/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:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,919&#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 colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,829&#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&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Secure Networks&lt;/span&gt;&lt;/td&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 #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Services&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,928&#160;&lt;/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="background-color:#cceeff;padding:0 1pt 0 7.75pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,928&#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:'Times New Roman',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:#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,160&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,757&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;br/&gt;March 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:10pt;font-style:italic;font-weight:700;line-height:100%"&gt;Customer Type&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Security Solutions&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 5.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 5.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State &amp;amp; Local, and Commercial&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,317&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,378&#160;&lt;/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:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,919&#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 colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,829&#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&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Secure Networks&lt;/span&gt;&lt;/td&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="3" style="background-color:#ffffff;padding:2px 1pt 2px 5.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,897&#160;&lt;/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 5.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State &amp;amp; Local, and Commercial&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31&#160;&lt;/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:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#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 colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,928&#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&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:'Times New Roman',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-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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,160&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,757&#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="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;br/&gt;March 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:10pt;font-style:italic;font-weight:700;line-height:100%"&gt;Contract Type&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Security Solutions&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 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Firm fixed-price&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,012&#160;&lt;/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 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Time-and-materials&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost plus fixed fee&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,536&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,816&#160;&lt;/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:0 1pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,919&#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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,829&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Secure Networks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;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 #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Firm fixed-price&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,810&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,129&#160;&lt;/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 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Time-and-materials&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29&#160;&lt;/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 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost plus fixed fee&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,431&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,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;/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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#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 colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,928&#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&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:'Times New Roman',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-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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,160&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,757&#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="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue resulting from contracts and subcontracts with the U.S. government accounted for 95% and 96% of our revenue for the three months ended March 31, 2022 and 2021, respectively. As our primary customer base includes agencies of the U.S. government, we have a concentration of credit risk associated with our accounts receivable, as 72% of our billed accounts receivable as of March 31, 2022 were directly with U.S. government customers. While we acknowledge the potentially material and adverse risk of such a significant concentration of credit risk, our past experience of collecting substantially all of such receivables provides us with an informed basis that such risk, if any, is manageable. We perform ongoing credit evaluations of all of our customers and generally do not require collateral or other guarantee from our customers. We maintain allowances for potential losses.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The percentage of total revenue for the U.S. government, its agencies and other customers comprising more than 10% of total revenue is as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.767%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.168%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.396%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.169%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;br/&gt;March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;U.S. Department of Defense ("DoD")&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;71.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;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;84.3&#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:'Times New Roman',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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Civilian&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24.0&#160;&lt;/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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11.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;span style="color:#000000;font-family:'Times New Roman',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="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Contract Balances&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Performance obligations are satisfied either over time or at a point in time and are typically invoiced to the customers as work progresses in accordance with agreed-upon contractual terms, either at periodic intervals or upon achievement of contractual milestones. Generally, revenue recognition occurs before billing, resulting in contract assets. These contract assets are referred to as unbilled receivables and are reported within accounts receivable, net of reserve on our condensed consolidated balance sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract liabilities&#160;are payments received in advance and milestone payments from our customers on selected contracts that exceed revenue earned to date, resulting in contract liabilities. Contract liabilities typically are not considered a significant financing component because they are generally satisfied within one year and are used to meet working capital demands that can be higher in the early stages of a contract. Contract liabilities are reported on our condensed consolidated balance sheets on a net contract basis at the end of each reporting period. As of March&#160;31, 2022 and December&#160;31, 2021, the contract liabilities are primarily related to product support services.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract balances for the periods presented are as follow (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;March 31, 2022&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2021&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Contract assets (unbilled receivables)&lt;/span&gt;&lt;/td&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,579&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,374&#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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Contract liabilities&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 7pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,036&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,381&#160;&lt;/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:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The change in the Company's contract assets and contract liabilities during the period were primarily the result of the timing differences between the Company's performance, invoicing and customer payments. Revenue recognized for the three months ended March&#160;31, 2022 and 2021, that was included in the contract liabilities balance at the beginning of each reporting period was $2.5 million and $2.0 million, respectively.&lt;/span&gt;&lt;/div&gt;As of March&#160;31, 2022 and December&#160;31, 2021, we had $120.0 million and $123.5 million of remaining performance obligations, respectively, which we also refer to as funded backlog. We expect to recognize approximately 84% of our remaining performance obligations as revenue in 2022, an additional 12% in 2023, and the balance thereafter.</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl80OTQ3ODAyMzY2MTk5_794492ea-2906-4546-9ea5-657be6c2206a">&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for revenue in accordance with ASC Topic 606, &#x201c;Revenue from Contracts with Customers.&#x201d; The unit of account in ASC 606 is a performance obligation, which is a promise in a contract with a customer to transfer a good or service to the customer. ASC 606 prescribes a five-step model for recognizing revenue that includes identifying the contract with the customer, determining the performance obligation(s), determining the transaction price, allocating the transaction price to the performance obligation(s), and recognizing revenue as the performance obligations are satisfied. Timing of the satisfaction of performance obligations varies across our businesses due to our diverse product and service mix, customer base, and contractual terms. Significant judgment can be required in determining certain performance obligations, and these determinations could change the amount of revenue and profit recorded in a given period. Our contracts may have a single performance obligation or multiple performance obligations. When there are multiple performance obligations within a contract, we allocate the transaction price, net of any discounts, to each performance obligation based on the standalone selling price of the product or service underlying each performance obligation. Our contracts with the U.S. government are generally subject to Federal Acquisition Regulation ("FAR") and the price is typically based on estimated or actual costs plus a reasonable profit margin. As such, the standalone selling price of products or services in our contracts with the U.S. government is typically equal to the selling price stated in the contract. For non-U.S. government contracts with multiple performance obligations, standalone selling price is the observable price of a good or service when Telos sells that good or service separately in similar circumstances and to similar customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contracts are routinely and often modified to account for changes in contract requirements, specifications, quantities, or price. Depending on the nature of the modification, we determine whether to account for the modification as an adjustment to the existing contract or as a new contract. Generally, modifications are not distinct from the existing contract due to the significant interrelatedness of the performance obligations and are therefore accounted for as an adjustment to the existing contract, and recognized as a cumulative adjustment to revenue (as either an increase or reduction of revenue) based on the modification&#x2019;s effect on progress toward completion of a performance obligation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of our revenue is recognized over time, as control is transferred continuously to our customers who receive and consume benefits as we perform, and is classified as services revenue. Revenue transferred to customers over time accounted for 96% and 93% of our revenue for the three months ended March 31, 2022 and 2021, respectively. All of our business groups earn services revenue under a variety of contract types, including time and materials, firm-fixed price, firm-fixed price level of effort, and cost-plus fixed fee contract types, which may include variable consideration as discussed further below. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue is recognized over time using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material, subcontractor costs and indirect expenses. This continuous transfer of control to the customer is supported by clauses in our contracts with U.S. government customers whereby the customer may terminate a contract for convenience and then pay for costs incurred plus a profit, at which time the customer would take control of any work in process. For non-U.S. government contracts where we perform as a subcontractor and our order includes similar FAR provisions as the prime contractor&#x2019;s order from the U.S. government, continuous transfer of control is likewise supported by such provisions. For other non-U.S. government customers, continuous transfer of control to such customers is also supported due to general terms in our contracts and rights to recover damages which would include, among other potential damages, the right to payment for our work performed to date plus a reasonable profit.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue that is recognized at a point in time is for the sale of software licenses in our Information Assurance / Xacta&#xae; and Secure Communications business groups and for the sale of resold products in Telos ID and Secure Networks, and is classified as product revenue. Revenue transferred to customers at a point in time accounted for 4% and 7% of our revenue for the three months ended March 31, 2022 and 2021, respectively. Revenue on these contracts is recognized when the customer obtains control of the transferred product or service, which is generally upon delivery of the product to the customer for their use, due to us maintaining control of the product until that point. Orders for the sale of software licenses may contain multiple performance obligations, such as maintenance, training, or consulting services, which are typically delivered over time, consistent with the transfer of control disclosed above for the provision of services. When an order contains multiple performance obligations, we allocate the transaction price to the performance obligations based on the standalone selling price of the product or service underlying each performance obligation. The standalone selling price represents the amount we would sell the product or service to a customer on a standalone basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For certain performance obligations where we are not primarily responsible for fulfilling the promise to provide the goods or services to the customer, do not have inventory risk and have limited discretion in establishing the price for the goods or services, we recognize revenue on a net basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Contract Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Due to the transfer of control over time, revenue is recognized based on progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the performance obligations. We generally use the cost-to-cost measure of progress on a proportional performance basis for our contracts because it best depicts the transfer of control to the customer, which occurs as we incur costs on our contracts. Under the cost-to-cost measure of progress, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenues are recorded proportionally as costs are incurred. Due to the nature of the work required to be performed on certain of our performance obligations, the estimation of total revenue and cost at completion is complex, subject to many variables and requires significant judgment. Contract estimates are based on various assumptions, including labor and subcontractor costs, materials and other direct costs and the complexity of the work to be performed. A significant change in one or more of these estimates could affect the profitability of our contracts. We review and update our contract-related estimates regularly and recognize adjustments in estimated profit on contracts on a cumulative catch-up basis, which may result in an adjustment increasing or decreasing revenue to date on a contract in a particular period that the adjustment is identified. Revenue and profit in future periods of contract performance are recognized using the adjusted estimate.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our contracts may include various types of variable consideration, such as claims (for instance, indirect rate or other equitable adjustments) or incentive fees. We include estimated amounts in the transaction price based on all of the information available to us, including historical information and future estimations, and to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when any uncertainty associated with the variable consideration is resolved.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We provide for anticipated losses on contracts during the period when the loss is determined by recording an expense for the total expected costs that exceeds the total estimated revenue for a performance obligation. No contract losses were recorded during the three months ended March 31, 2022 and 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Historically, most of our contracts do not include award or incentive fees. For incentive fees, we would include such fees in the transaction price to the extent we could reasonably estimate the amount of the fee. With limited historical experience, we have not included any revenue related to incentive fees in our estimated transaction prices. We may include in our contract estimates additional revenue for submitted contract modifications or claims against the customer when we believe we have an enforceable right to the modification or claim, the amount can be estimated reliably and its realization is probable. We consider the contractual/legal basis for the claim (in particular FAR provisions), the facts and circumstances around any additional costs incurred, the reasonableness of those costs and the objective evidence available to support such claims.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For our contracts that have an original duration of one year or less, we use the practical expedient applicable to such contracts and do not consider the time value of money. We capitalize on sales commissions related to proprietary software and related services that are directly tied to sales. We do not elect the practical expedient to expense as incurred the incremental costs of obtaining a contract if the amortization period would have been one year or less. For the sales commissions that are capitalized, we amortize the asset over the expected customer life, which is based on recent and historical data. &lt;/span&gt;&lt;/div&gt;We have identified two reportable segments. We treat sales to U.S. customers as sales within the U.S. regardless of where the services are performed. Substantially all of our revenues are generated from U.S. customers, international customers are de minimus, therefore the financial information by geographic location is not presented.</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i8cfe462d26504ed5b0b0ed754344d161_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xMDk5NTExNjY4MDk4_3ad44205-63c6-4481-a67b-6a0570bf1e23"
      unitRef="number">0.96</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ie7e1bdebb5cd4120a888bb9cc1a436e6_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xMDk5NTExNjY4MDky_65a368ea-67d0-4792-af86-32cf38cdc28a"
      unitRef="number">0.93</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i35a5f0e302974c86a12858834a39fb0d_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xMDk5NTExNjY4MTEw_883067b9-1deb-4041-be23-54a54011c217"
      unitRef="number">0.04</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i9b30f5e051d74edcbcf34e2232e1b436_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xMDk5NTExNjY4MTA0_93bbac34-e359-4a06-9175-4059c8dc415b"
      unitRef="number">0.07</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:NumberOfReportableSegments
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl80OTQ3ODAyMzY2MjA2_8780889c-87bc-4b26-bd44-1c0df1040d02"
      unitRef="segment">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl80OTQ3ODAyMzY2MTk4_821abfa0-a924-4ec9-ab8b-a5b855b5679b">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables disclose revenue for our operating segments disaggregated by several categories for the three months ended March&#160;31, 2022 and 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;br/&gt;March 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:10pt;font-style:italic;font-weight:700;line-height:100%"&gt;Revenue Type&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Security Solutions&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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Services&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,867&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,130&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Product&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,052&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,699&#160;&lt;/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:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,919&#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 colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,829&#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&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Secure Networks&lt;/span&gt;&lt;/td&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 #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Services&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,928&#160;&lt;/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="background-color:#cceeff;padding:0 1pt 0 7.75pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,928&#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:'Times New Roman',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:#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,160&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,757&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;br/&gt;March 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:10pt;font-style:italic;font-weight:700;line-height:100%"&gt;Customer Type&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Security Solutions&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 5.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 5.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State &amp;amp; Local, and Commercial&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,317&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,378&#160;&lt;/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:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,919&#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 colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,829&#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&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Secure Networks&lt;/span&gt;&lt;/td&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="3" style="background-color:#ffffff;padding:2px 1pt 2px 5.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,897&#160;&lt;/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 5.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State &amp;amp; Local, and Commercial&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31&#160;&lt;/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:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#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 colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,928&#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&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:'Times New Roman',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-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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,160&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,757&#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;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;br/&gt;March 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:10pt;font-style:italic;font-weight:700;line-height:100%"&gt;Contract Type&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Security Solutions&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 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Firm fixed-price&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,012&#160;&lt;/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 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Time-and-materials&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost plus fixed fee&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,536&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,816&#160;&lt;/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:0 1pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,919&#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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,829&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Secure Networks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;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 #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Firm fixed-price&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,810&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,129&#160;&lt;/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 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Time-and-materials&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29&#160;&lt;/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 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost plus fixed fee&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,431&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,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;/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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#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 colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,928&#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&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:'Times New Roman',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-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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,160&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,757&#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;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i66c62d19b02443459f9499b3728af70c_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y18zLTEtMS0xLTY1OTU1_25232ffc-16ee-453f-a558-057765a11572"
      unitRef="usd">24867000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i0325e4c790254106ad41aab20a0e3a16_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y18zLTMtMS0xLTYzODUx_f507a1f5-c4a6-4d0e-853e-6c8182513d91"
      unitRef="usd">19130000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5a1398b607b84ef9a02ad91ad53a8316_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y180LTEtMS0xLTY1OTU1_9b5b81ef-4b2a-4841-8c0c-31a746fd138a"
      unitRef="usd">2052000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i57ee630b1bf14168b44c0d1483af5a47_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y180LTMtMS0xLTYzODUx_8f0ccc9a-a4e6-49a8-8a47-4f4b8cc126cc"
      unitRef="usd">3699000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib52b553194024214bd12917bff93e00a_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y181LTEtMS0xLTYzOTc1_6543bbb1-5f47-44dd-bd1c-312824246fc3"
      unitRef="usd">26919000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i52b5b12ca5344e9da33020367111f47f_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y181LTMtMS0xLTYzODUx_8813ad91-6600-4723-9a72-53a574fb88b7"
      unitRef="usd">22829000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i031bda6cac654d3fbece71bee485f64c_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y183LTEtMS0xLTY1OTU1_537431f6-c492-4280-a0f4-90be69a0c6d3"
      unitRef="usd">23241000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib48ad0bcfb9a472583873aa847330f52_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y183LTMtMS0xLTYzODUx_a00868b3-4a0c-41b8-94c7-6d39deb9bd97"
      unitRef="usd">32928000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ica3db64bd5bd4bff8bd9fb25dc152707_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y185LTEtMS0xLTYzOTc1_191df184-378e-442e-a679-e80fdb95887a"
      unitRef="usd">23241000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8f156b6ee354426392541fc46a0e647e_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y185LTMtMS0xLTYzODUx_407c0e06-1c2e-4e61-82d5-9df7436ebd9a"
      unitRef="usd">32928000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y18xMC0xLTEtMS02Mzk3NQ_10bbdca4-718a-4607-ab23-88f4d9d8629f"
      unitRef="usd">50160000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZjJkM2YxYWYxY2RlNDEyZjhkYWVmMGE1YmE2M2QyN2MvdGFibGVyYW5nZTpmMmQzZjFhZjFjZGU0MTJmOGRhZWYwYTViYTYzZDI3Y18xMC0zLTEtMS02Mzg1MQ_c8335b5a-ce43-4828-8f1b-2c30865edf02"
      unitRef="usd">55757000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i3317f6b99d8f424f9ee902632d0b210d_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV8yLTEtMS0xLTYxNTc1_db58aa82-7161-40e0-8597-9b07582912cc"
      unitRef="usd">24602000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id1d18954f0de4d80b6025b10d59bd5a6_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV8yLTMtMS0xLTYxNTc1_9e31ab42-6a82-42d8-94cb-8443d993b7e0"
      unitRef="usd">20451000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8c5d3af6afc94debb0b435265f064d86_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV8zLTEtMS0xLTYxNTc1_22f702ea-3eb8-4a73-acba-1f58253c5bc8"
      unitRef="usd">2317000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id1e5eccca550499da47bdd5130085c70_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV8zLTMtMS0xLTYxNTc1_af1a6bec-1384-4aca-a2a2-367f46154734"
      unitRef="usd">2378000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib52b553194024214bd12917bff93e00a_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV81LTEtMS0xLTYzOTk3_375e0aa1-fb06-4248-b6e5-af31e1bc8e25"
      unitRef="usd">26919000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i52b5b12ca5344e9da33020367111f47f_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV81LTMtMS0xLTYzOTg0_08c98ddb-15b5-4cca-9a3d-8abe780b7643"
      unitRef="usd">22829000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i268e5a4ff2d4464cb45f1311b0fd0781_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV83LTEtMS0xLTY1OTY4_f86e4fa5-27af-465c-854d-67a616eb9517"
      unitRef="usd">23241000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8db4f3d6c30c4d658cef0d343f6d577e_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV83LTMtMS0xLTYzOTg0_1fcc8f7b-b5ce-4679-8f8f-a7cdefd1f3ff"
      unitRef="usd">32897000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia4eb96bf9a7a4d0693dd6257b76850ea_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV84LTEtMS0xLTY1OTY4_376b839c-ab3c-4be2-a24a-f5004a5d3298"
      unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iee4181fa7fad4b9aaf372376fee43128_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV84LTMtMS0xLTYzOTg0_9c61f310-fa40-4e5e-bc65-16f7682d6863"
      unitRef="usd">31000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ica3db64bd5bd4bff8bd9fb25dc152707_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV85LTEtMS0xLTYzOTk3_609819ea-0f4f-49cf-a664-3905b67912fb"
      unitRef="usd">23241000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8f156b6ee354426392541fc46a0e647e_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV85LTMtMS0xLTYzOTg0_0448666e-36c3-4045-8e51-9506368923bd"
      unitRef="usd">32928000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV80LTEtMS0xLTYxNTc1_104530be-0ee6-465c-880a-e1beffe9495d"
      unitRef="usd">50160000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6N2MwMTdlMjYzMzY5NDM4YmJjMjhlZDU2YjBkZmRhNTEvdGFibGVyYW5nZTo3YzAxN2UyNjMzNjk0MzhiYmMyOGVkNTZiMGRmZGE1MV80LTMtMS0xLTYxNTc1_4a890888-7d02-434c-a492-0b0fb0e9ed62"
      unitRef="usd">55757000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ica4a2b9b3ca240aaa8c1c51c408fc9f4_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM18yLTEtMS0xLTYxNTc1_a577fd2b-c650-45a9-b254-bef01947854e"
      unitRef="usd">22467000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i88c23154ea6f46fe9d6aef8202a3686e_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM18yLTMtMS0xLTYxNTc1_96831726-ff01-4e96-a24d-476032d6e4a5"
      unitRef="usd">18012000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i3a1f02dc7b134b24ac9d943737b01f9c_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM18zLTEtMS0xLTYxNTc1_db636f64-22c7-42f1-a7d2-e43043f325dc"
      unitRef="usd">2916000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i202293b628024b869d98780d851f331e_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM18zLTMtMS0xLTYxNTc1_a719340f-c2d0-4aa9-a01b-3c131fef31b0"
      unitRef="usd">3001000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i29aeda4e887e426297a87a38e1ef4f9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM180LTEtMS0xLTYxNTc1_91f53b7b-5874-4c92-af53-84c6e2a14bf0"
      unitRef="usd">1536000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i045389adf2954b36b03ec4ac344d9df7_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM180LTMtMS0xLTYxNTc1_7450c24f-7c3d-4143-802c-19782299fe82"
      unitRef="usd">1816000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib52b553194024214bd12917bff93e00a_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM182LTEtMS0xLTY0MDM2_be53a0ee-f44d-4d60-aee5-6672335335e8"
      unitRef="usd">26919000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i52b5b12ca5344e9da33020367111f47f_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM182LTMtMS0xLTY0MDI1_f1bbdf4c-5579-4ae9-ab49-21a54bf860d7"
      unitRef="usd">22829000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1dd48a56ace84468a156aa8583bf6abb_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM184LTEtMS0xLTY1OTgy_086cb62f-6665-41fb-a414-b7fc768edc69"
      unitRef="usd">18810000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia39a9119c25a4fc4957082e84f41866c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM184LTMtMS0xLTY0MDI1_3e1b59cb-6c47-4b31-9c80-97b203c46c51"
      unitRef="usd">31129000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i36eee9ca706841c7862ec5c67f7c8493_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM185LTEtMS0xLTY1OTgy_64487c9c-efea-4e41-9afa-104f34e0c373"
      unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9187322817194987aac8412992b5f8d0_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM185LTMtMS0xLTY0MDI1_e4150f8b-e601-4b78-b026-9fc33e677e9c"
      unitRef="usd">29000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia65364906609462ab0fa8485be37e64b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM18xMC0xLTEtMS02NTk4Mg_86e55788-4d1f-49cb-b955-5eedbda5bc88"
      unitRef="usd">4431000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie4bf7b99c82b4e759c75d30e7596b27b_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM18xMC0zLTEtMS02NDAyNQ_2e098330-0576-4ba7-9d32-b2f59474d4c4"
      unitRef="usd">1770000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ica3db64bd5bd4bff8bd9fb25dc152707_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM18xMS0xLTEtMS02NDAzNg_09fa6389-1fe4-4828-a8f4-eefb011069d8"
      unitRef="usd">23241000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8f156b6ee354426392541fc46a0e647e_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM18xMS0zLTEtMS02NDAyNQ_bc2de659-b9db-41e2-b2d6-b827f4354e00"
      unitRef="usd">32928000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM181LTEtMS0xLTYxNTc1_ea459821-fc50-40a2-8d0d-239e9fc5493b"
      unitRef="usd">50160000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6ZDA0NDNiMWMzZDQ2NDBlOWFhZGJlNTc0NzlhYjU3YzMvdGFibGVyYW5nZTpkMDQ0M2IxYzNkNDY0MGU5YWFkYmU1NzQ3OWFiNTdjM181LTMtMS0xLTYxNTc1_f259679e-15e0-4f66-bb28-48856906cd75"
      unitRef="usd">55757000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="id8658de4855d4e3aafb39f33a14de75a_D20220101-20220331"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xMDk5NTExNjY4Mjgx_28759cc0-075e-4cf3-b0a0-30dc5293d6bc"
      unitRef="number">0.95</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ifa1f197447ac4f75aa3e54641fcd66fa_D20210101-20210331"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xMDk5NTExNjY4Mjc1_2750795f-7084-47f9-b5eb-9d208b558c84"
      unitRef="number">0.96</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="idc2066be369b4761bf9c19f6bd3b0174_D20220101-20220331"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xNjQ5MjY3NDgyOTg4_ed07ef0b-d2bb-4417-aba0-3693c943f7e7"
      unitRef="number">0.72</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl80OTQ3ODAyMzY2MjU1_2fd56c63-1ae1-4847-a869-2ccc0f1fde93">&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The percentage of total revenue for the U.S. government, its agencies and other customers comprising more than 10% of total revenue is as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.767%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.168%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.396%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.169%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;br/&gt;March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;U.S. Department of Defense ("DoD")&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;71.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;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;84.3&#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:'Times New Roman',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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Civilian&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24.0&#160;&lt;/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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11.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;span style="color:#000000;font-family:'Times New Roman',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:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i8b6607121da4435ea9fcf68d7144a9ca_D20220101-20220331"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6M2FlNzcwNGI2ZjY2NGE4OWJmY2E1OGZiM2RiZjYxYzkvdGFibGVyYW5nZTozYWU3NzA0YjZmNjY0YTg5YmZjYTU4ZmIzZGJmNjFjOV8xLTEtMS0xLTYxODY5_990ce68b-7056-493e-a68a-b4b0586e10e1"
      unitRef="number">0.714</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="id5d46361d0124975a7ad8a4951b03940_D20210101-20210331"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6M2FlNzcwNGI2ZjY2NGE4OWJmY2E1OGZiM2RiZjYxYzkvdGFibGVyYW5nZTozYWU3NzA0YjZmNjY0YTg5YmZjYTU4ZmIzZGJmNjFjOV8xLTMtMS0xLTYxODY5_b8c55c70-1852-43dc-9650-42f7355533a5"
      unitRef="number">0.843</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i57c298d98d6f47bfa0bcfd8c31407a6c_D20220101-20220331"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6M2FlNzcwNGI2ZjY2NGE4OWJmY2E1OGZiM2RiZjYxYzkvdGFibGVyYW5nZTozYWU3NzA0YjZmNjY0YTg5YmZjYTU4ZmIzZGJmNjFjOV8yLTEtMS0xLTYxODY5_5876b9b6-45d1-4bb9-abb5-327e60ec30b7"
      unitRef="number">0.240</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ic2036cd1f6d8414c89c1fda749773f3e_D20210101-20210331"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6M2FlNzcwNGI2ZjY2NGE4OWJmY2E1OGZiM2RiZjYxYzkvdGFibGVyYW5nZTozYWU3NzA0YjZmNjY0YTg5YmZjYTU4ZmIzZGJmNjFjOV8yLTMtMS0xLTYxODY5_46c9b08a-1b6b-4299-949f-ec77780ad530"
      unitRef="number">0.114</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl80OTQ3ODAyMzY2MjU0_5c348f14-3821-4662-a786-ace773ca2761">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract balances for the periods presented are as follow (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;March 31, 2022&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2021&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Contract assets (unbilled receivables)&lt;/span&gt;&lt;/td&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,579&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,374&#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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Contract liabilities&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 7pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,036&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,381&#160;&lt;/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;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:UnbilledContractsReceivable
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6M2IyM2IyZGJlM2QyNDQyY2E3NWU0Mzk5NjVhNjQ5ZWEvdGFibGVyYW5nZTozYjIzYjJkYmUzZDI0NDJjYTc1ZTQzOTk2NWE2NDllYV8xLTEtMS0xLTY3MTM3_549a7eda-7f68-4144-bd24-39f0a5465346"
      unitRef="usd">32579000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:UnbilledContractsReceivable
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6M2IyM2IyZGJlM2QyNDQyY2E3NWU0Mzk5NjVhNjQ5ZWEvdGFibGVyYW5nZTozYjIzYjJkYmUzZDI0NDJjYTc1ZTQzOTk2NWE2NDllYV8xLTMtMS0xLTY3MTM3_d3d0ebc0-30a7-403a-9866-5e4ed63d60de"
      unitRef="usd">41374000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6M2IyM2IyZGJlM2QyNDQyY2E3NWU0Mzk5NjVhNjQ5ZWEvdGFibGVyYW5nZTozYjIzYjJkYmUzZDI0NDJjYTc1ZTQzOTk2NWE2NDllYV8wLTEtMS0xLTY3MTI0_4971540f-8768-4016-b90b-a38323107396"
      unitRef="usd">7036000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGFibGU6M2IyM2IyZGJlM2QyNDQyY2E3NWU0Mzk5NjVhNjQ5ZWEvdGFibGVyYW5nZTozYjIzYjJkYmUzZDI0NDJjYTc1ZTQzOTk2NWE2NDllYV8wLTMtMS0xLTY3MTI0_fcfd3767-ffc9-4e7c-a0d8-585bb234aa69"
      unitRef="usd">6381000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xMDk5NTExNjY3NTQ0_2e8c18cb-d4b9-4ee7-96f5-3b878a7d0482"
      unitRef="usd">2500000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xMDk5NTExNjY3NTUy_70815eba-733c-4bbf-b74d-91d8ed7ba73a"
      unitRef="usd">2000000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xNjQ5MjY3NDUyMjM5_23b79197-65e3-41db-9011-5d859e9cf2a8"
      unitRef="usd">120000000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xNjQ5MjY3NDUyMjQ3_4d3ed42b-8677-4b3e-b80d-5c691f78e590"
      unitRef="usd">123500000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="idb2e5dca9ce44165acea9c3c3317faa1_I20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xNjQ5MjY3NDUyMzgy_2903bb9b-e893-4991-84e2-53d24db72e40"
      unitRef="number">0.84</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="i7637abb1c0ee4f87b21e5952e4ef63e5_I20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzAyL2ZyYWc6NDY4Yzg5MGVjYTk3NDgxNjg1MDY0NGEwOWFlZTRkMDIvdGV4dHJlZ2lvbjo0NjhjODkwZWNhOTc0ODE2ODUwNjQ0YTA5YWVlNGQwMl8xNjQ5MjY3NDUyNDYw_1b20709d-2c55-46ce-bfd7-d13d1db5d60a"
      unitRef="number">0.12</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:AccountsAndNontradeReceivableTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzg3L2ZyYWc6MGVjMmRlMjAzYzU5NGQ1OTllNmQ0YjcwODJlNTJlNGQvdGV4dHJlZ2lvbjowZWMyZGUyMDNjNTk0ZDU5OWU2ZDRiNzA4MmU1MmU0ZF80OTQ3ODAyMzI1MjM4_bac93f4d-f578-4f29-834f-0c97781977a2">Accounts Receivable&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table discloses accounts receivable (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;March 31, 2022&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2021&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Billed accounts receivable&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,366&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,586&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unbilled receivables&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,579&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,374&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allowance for credit losses&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(211)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(116)&lt;/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="padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accounts receivable, net&lt;/span&gt;&lt;/td&gt;&lt;td style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,734&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="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 style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;59,844&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="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:AccountsAndNontradeReceivableTextBlock>
    <us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzg3L2ZyYWc6MGVjMmRlMjAzYzU5NGQ1OTllNmQ0YjcwODJlNTJlNGQvdGV4dHJlZ2lvbjowZWMyZGUyMDNjNTk0ZDU5OWU2ZDRiNzA4MmU1MmU0ZF80OTQ3ODAyMzI1MjM5_226c5248-c762-4739-959c-559dd8f29f40">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table discloses accounts receivable (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;March 31, 2022&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2021&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Billed accounts receivable&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,366&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,586&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unbilled receivables&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,579&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,374&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allowance for credit losses&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(211)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(116)&lt;/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="padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accounts receivable, net&lt;/span&gt;&lt;/td&gt;&lt;td style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,734&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="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 style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;59,844&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="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:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
    <us-gaap:BilledContractReceivables
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzg3L2ZyYWc6MGVjMmRlMjAzYzU5NGQ1OTllNmQ0YjcwODJlNTJlNGQvdGFibGU6ZmRiNDllNTA5ZmI5NDY2NDlmMDg4NzA5ZWMzOTZlNzUvdGFibGVyYW5nZTpmZGI0OWU1MDlmYjk0NjY0OWYwODg3MDllYzM5NmU3NV8xLTEtMS0xLTY3MDg3_f0edefda-ca8d-479a-9c58-abe1cb051bba"
      unitRef="usd">25366000</us-gaap:BilledContractReceivables>
    <us-gaap:BilledContractReceivables
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzg3L2ZyYWc6MGVjMmRlMjAzYzU5NGQ1OTllNmQ0YjcwODJlNTJlNGQvdGFibGU6ZmRiNDllNTA5ZmI5NDY2NDlmMDg4NzA5ZWMzOTZlNzUvdGFibGVyYW5nZTpmZGI0OWU1MDlmYjk0NjY0OWYwODg3MDllYzM5NmU3NV8xLTMtMS0xLTY3MDg3_b34111c6-e843-4e04-b20d-c7831caf27b4"
      unitRef="usd">18586000</us-gaap:BilledContractReceivables>
    <us-gaap:UnbilledContractsReceivable
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzg3L2ZyYWc6MGVjMmRlMjAzYzU5NGQ1OTllNmQ0YjcwODJlNTJlNGQvdGFibGU6ZmRiNDllNTA5ZmI5NDY2NDlmMDg4NzA5ZWMzOTZlNzUvdGFibGVyYW5nZTpmZGI0OWU1MDlmYjk0NjY0OWYwODg3MDllYzM5NmU3NV8yLTEtMS0xLTY3MDg3_549a7eda-7f68-4144-bd24-39f0a5465346"
      unitRef="usd">32579000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:UnbilledContractsReceivable
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzg3L2ZyYWc6MGVjMmRlMjAzYzU5NGQ1OTllNmQ0YjcwODJlNTJlNGQvdGFibGU6ZmRiNDllNTA5ZmI5NDY2NDlmMDg4NzA5ZWMzOTZlNzUvdGFibGVyYW5nZTpmZGI0OWU1MDlmYjk0NjY0OWYwODg3MDllYzM5NmU3NV8yLTMtMS0xLTY3MDg3_d3d0ebc0-30a7-403a-9866-5e4ed63d60de"
      unitRef="usd">41374000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzg3L2ZyYWc6MGVjMmRlMjAzYzU5NGQ1OTllNmQ0YjcwODJlNTJlNGQvdGFibGU6ZmRiNDllNTA5ZmI5NDY2NDlmMDg4NzA5ZWMzOTZlNzUvdGFibGVyYW5nZTpmZGI0OWU1MDlmYjk0NjY0OWYwODg3MDllYzM5NmU3NV8zLTEtMS0xLTY3MDg3_a5f9211c-3a70-49b0-a2e1-55c3786eef90"
      unitRef="usd">211000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzg3L2ZyYWc6MGVjMmRlMjAzYzU5NGQ1OTllNmQ0YjcwODJlNTJlNGQvdGFibGU6ZmRiNDllNTA5ZmI5NDY2NDlmMDg4NzA5ZWMzOTZlNzUvdGFibGVyYW5nZTpmZGI0OWU1MDlmYjk0NjY0OWYwODg3MDllYzM5NmU3NV8zLTMtMS0xLTY3MDg3_561dfefd-b361-43b2-905b-dbae7d017224"
      unitRef="usd">116000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzg3L2ZyYWc6MGVjMmRlMjAzYzU5NGQ1OTllNmQ0YjcwODJlNTJlNGQvdGFibGU6ZmRiNDllNTA5ZmI5NDY2NDlmMDg4NzA5ZWMzOTZlNzUvdGFibGVyYW5nZTpmZGI0OWU1MDlmYjk0NjY0OWYwODg3MDllYzM5NmU3NV80LTEtMS0xLTY3MDg3_a78044e3-8685-41b8-b6bb-e20c80b330f3"
      unitRef="usd">57734000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzg3L2ZyYWc6MGVjMmRlMjAzYzU5NGQ1OTllNmQ0YjcwODJlNTJlNGQvdGFibGU6ZmRiNDllNTA5ZmI5NDY2NDlmMDg4NzA5ZWMzOTZlNzUvdGFibGVyYW5nZTpmZGI0OWU1MDlmYjk0NjY0OWYwODg3MDllYzM5NmU3NV80LTMtMS0xLTY3MDg3_e00ace34-9c74-4e0b-a542-edad9a7fa008"
      unitRef="usd">59844000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV80OTQ3ODAyMzI3MDA0_b52cca35-3ddb-4968-b8aa-5ac2e77bc607">Acquisition&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On July&#160;30, 2021, the Company acquired the assets of Diamond Fortress Technologies ("DFT") and wholly-owned subsidiaries for a total purchase consideration of $6.7 million, inclusive of $0.3 million related to a pre-existing contractual arrangement with DFT. Upon closing, $5.9 million of cash was paid with an additional $0.6 million payable to DFT 18 months after the close date (the "holdback"). The holdback amount has been discounted to its present value of $0.5 million using a discount rate relevant to the acquisition. The acquisition adds several new patents to the Company&#x2019;s library of biometric and digital identity intellectual property. The addition of contactless biometrics technology will enable the Company to better serve the needs of organizations in existing and new markets. The acquisition of DFT has been accounted for under U.S. GAAP using the acquisition method of accounting. The total purchase consideration of $6.7 million has been allocated among the assets acquired at their fair value at the acquisition date. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognized $3.7 million of intangible assets and $3.0 million of goodwill, which is housed in the Telos ID reporting unit, part of the Security Solutions operating segment. Goodwill is primarily attributable to an excess of the purchase price over the acquired identifiable net tangible and intangible assets. The acquired intangible assets will be amortized on a straight-line basis over 3 - 8 years. The acquisition was considered an asset purchase for tax purposes and the recognized goodwill is deductible for tax purposes.&lt;/span&gt;&lt;/div&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="i37aa63efa7464c228826e1c8f8149304_D20210730-20210730"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzEw_74de9d26-0d39-44be-82b0-d41d55cf8a49"
      unitRef="usd">6700000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsAdditionalDisclosuresAcquisitionCosts
      contextRef="ia6f05ce3d6fa4f5bb6423c26c0fded03_I20210730"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzE3_b50cb3ed-46cc-4f6e-89ee-7c97b112d591"
      unitRef="usd">300000</us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsAdditionalDisclosuresAcquisitionCosts>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="i37aa63efa7464c228826e1c8f8149304_D20210730-20210730"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzIx_55a0da05-9ab8-4030-82d4-6ee0e819b3da"
      unitRef="usd">5900000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="i37aa63efa7464c228826e1c8f8149304_D20210730-20210730"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzI1_75454bcc-0a1c-4691-9a52-0be75b111045"
      unitRef="usd">600000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <tls:BusinessCombinationConsiderationTransferredLiabilitiesIncurredCashHoldbackPeriod
      contextRef="i37aa63efa7464c228826e1c8f8149304_D20210730-20210730"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzI5_f85d0244-0456-4432-9ae1-323c7e36577f">P18M</tls:BusinessCombinationConsiderationTransferredLiabilitiesIncurredCashHoldbackPeriod>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="ia6f05ce3d6fa4f5bb6423c26c0fded03_I20210730"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzM0_d1ce412e-c2b8-4ca0-a7a3-ed19e3801186"
      unitRef="usd">500000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="i37aa63efa7464c228826e1c8f8149304_D20210730-20210730"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzQy_74de9d26-0d39-44be-82b0-d41d55cf8a49"
      unitRef="usd">6700000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="ia6f05ce3d6fa4f5bb6423c26c0fded03_I20210730"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzQ2_e00cb7f9-9f9f-4a5e-94ca-4148b3d2c5f5"
      unitRef="usd">3700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="i37aa63efa7464c228826e1c8f8149304_D20210730-20210730"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzUw_6fd14472-b3b0-484d-b420-d50c2286f265"
      unitRef="usd">3000000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ib68b1c72d2884c8ab028b0e515a6d0ff_D20210730-20210730"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzU0_7a5074c2-7638-4bb6-85df-2df39de4e30d">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ieedf4c7a0b0b46feb2365d8ba1b1b77f_D20210730-20210730"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzIwL2ZyYWc6MGRhZGRmODk3NmZlNGI3Y2I0ZWRlYTExMzNlNjU3NDkvdGV4dHJlZ2lvbjowZGFkZGY4OTc2ZmU0YjdjYjRlZGVhMTEzM2U2NTc0OV8xMDk5NTExNjI5NzU4_8de4244c-1547-42f2-afa1-ad390d40cde0">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:GoodwillDisclosureTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80OS9mcmFnOjI1M2Q5ZDZiZGI3NzQ0OWY5NmQxYmRlN2NlZGEzM2ExL3RleHRyZWdpb246MjUzZDlkNmJkYjc3NDQ5Zjk2ZDFiZGU3Y2VkYTMzYTFfMjcx_1f66a644-ccee-4c76-9a30-07382b816ee2">GoodwillThe goodwill balance was $17.9 million as of March&#160;31, 2022 and December&#160;31, 2021, of which $3.0 million is allocated to the Security Solutions segment and $14.9 million is allocated to the Secure Networks segment. Goodwill is subject to annual impairment tests and in the interim, if triggering events are present before the annual tests, we will assess impairment. For the three months ended March 31, 2022 and 2021, no impairment charges were taken.</us-gaap:GoodwillDisclosureTextBlock>
    <us-gaap:Goodwill
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80OS9mcmFnOjI1M2Q5ZDZiZGI3NzQ0OWY5NmQxYmRlN2NlZGEzM2ExL3RleHRyZWdpb246MjUzZDlkNmJkYjc3NDQ5Zjk2ZDFiZGU3Y2VkYTMzYTFfNDg_8aa0e8c5-49ca-472f-9257-db030e54d7f2"
      unitRef="usd">17900000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80OS9mcmFnOjI1M2Q5ZDZiZGI3NzQ0OWY5NmQxYmRlN2NlZGEzM2ExL3RleHRyZWdpb246MjUzZDlkNmJkYjc3NDQ5Zjk2ZDFiZGU3Y2VkYTMzYTFfNDg_f7a4d5fc-9716-4946-95f6-e9ce6c329257"
      unitRef="usd">17900000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="id89a3e2d7e364bb1822b15a16d60ad65_I20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80OS9mcmFnOjI1M2Q5ZDZiZGI3NzQ0OWY5NmQxYmRlN2NlZGEzM2ExL3RleHRyZWdpb246MjUzZDlkNmJkYjc3NDQ5Zjk2ZDFiZGU3Y2VkYTMzYTFfMTA5OTUxMTYyODUxNA_2a2e9dbb-8317-42ea-8c78-1cb0721b0910"
      unitRef="usd">3000000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i07a3f0651a7240a89f2bb34e570f965b_I20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80OS9mcmFnOjI1M2Q5ZDZiZGI3NzQ0OWY5NmQxYmRlN2NlZGEzM2ExL3RleHRyZWdpb246MjUzZDlkNmJkYjc3NDQ5Zjk2ZDFiZGU3Y2VkYTMzYTFfMTA5OTUxMTYyODUzMw_99057aae-6bdc-4413-827c-e38e85a2774f"
      unitRef="usd">14900000</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80OS9mcmFnOjI1M2Q5ZDZiZGI3NzQ0OWY5NmQxYmRlN2NlZGEzM2ExL3RleHRyZWdpb246MjUzZDlkNmJkYjc3NDQ5Zjk2ZDFiZGU3Y2VkYTMzYTFfMjM5_040b77ed-8345-47be-b9ef-b30bce990e52"
      unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80OS9mcmFnOjI1M2Q5ZDZiZGI3NzQ0OWY5NmQxYmRlN2NlZGEzM2ExL3RleHRyZWdpb246MjUzZDlkNmJkYjc3NDQ5Zjk2ZDFiZGU3Y2VkYTMzYTFfMjM5_929293e6-76f6-405c-a74b-f11d36c66656"
      unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGV4dHJlZ2lvbjo0M2U2ZGM2MjQwYTM0MjlkOThmZmVlM2MxM2RmZWZlOV80OTQ3ODAyMzI1Nzk2_a018144f-d1c4-4a14-8ed2-cf55e26d3ffc">Intangible Assets&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets with finite lives are amortized over the following estimated useful lives:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&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:78.432%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.784%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Estimated Useful Life&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquired technology&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationship&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Software development costs&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets, all of which are finite-lived, consists of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&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:27.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.180%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.718%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.619%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.011%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.872%"/&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;March&#160;31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December&#160;31, 2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Carrying Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net Carrying 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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Carrying Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net Carrying 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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquired technology&lt;/span&gt;&lt;/td&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,630&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(302)&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;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,328&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,630&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(256)&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;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,374&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;31&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;35&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Software 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,017&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,763)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;18,254&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,432)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;15,790&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/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: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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,687&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7,074)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;21,613&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,892&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,693)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;19,199&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;Amortization expense was $0.4 million and $0.5 million for the three months ended March 31, 2022 and 2021, respectively.</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGV4dHJlZ2lvbjo0M2U2ZGM2MjQwYTM0MjlkOThmZmVlM2MxM2RmZWZlOV80OTQ3ODAyMzI1Nzk3_f20a9c75-e282-4a0c-ac9d-ef8d2671ed26">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets with finite lives are amortized over the following estimated useful lives:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&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:78.432%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.784%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Estimated Useful Life&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquired technology&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationship&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Software development costs&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2 years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets, all of which are finite-lived, consists of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&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:27.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.180%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.718%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.619%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.011%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.872%"/&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;March&#160;31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December&#160;31, 2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Carrying Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net Carrying 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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Carrying Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net Carrying 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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquired technology&lt;/span&gt;&lt;/td&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,630&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(302)&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;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,328&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,630&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(256)&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;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,374&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;31&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;35&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Software 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,017&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,763)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;18,254&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,432)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;15,790&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/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: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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,687&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7,074)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;21,613&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,892&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,693)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;19,199&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i82d55f26d6f64f04af87a9015ccdba06_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6ZWI1MTZiY2JhMDM1NDM3ZjkyYjc2ZTNhMTk0ZjJmMjUvdGFibGVyYW5nZTplYjUxNmJjYmEwMzU0MzdmOTJiNzZlM2ExOTRmMmYyNV8xLTItMS0xLTU5OTYx_7df716cd-2917-4496-bf27-1e9960a559b0">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ibd4ebfa1545c44c7b9eddc0070da4696_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6ZWI1MTZiY2JhMDM1NDM3ZjkyYjc2ZTNhMTk0ZjJmMjUvdGFibGVyYW5nZTplYjUxNmJjYmEwMzU0MzdmOTJiNzZlM2ExOTRmMmYyNV8yLTItMS0xLTU5OTYx_a794f5da-bd03-42ce-b201-867ad878aff2">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i28b67bf9b4f5453da130677a9ef94ea8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6ZWI1MTZiY2JhMDM1NDM3ZjkyYjc2ZTNhMTk0ZjJmMjUvdGFibGVyYW5nZTplYjUxNmJjYmEwMzU0MzdmOTJiNzZlM2ExOTRmMmYyNV8zLTItMS0xLTU5OTYx_c6d9f967-da89-4d0f-8460-e7c819bc554c">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i60c75cc4875d44948ae1488f78daa5b9_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8yLTEtMS0xLTU5OTYx_7f15d556-8ea3-46da-b354-be37d4355d6b"
      unitRef="usd">3630000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i60c75cc4875d44948ae1488f78daa5b9_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8yLTMtMS0xLTU5OTYx_6920d95e-2473-4fe3-9a0c-3abe0b3da1ba"
      unitRef="usd">302000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i60c75cc4875d44948ae1488f78daa5b9_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8yLTUtMS0xLTU5OTYx_1630f6ad-876b-44df-8b06-67e041f9dbe5"
      unitRef="usd">3328000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ifd744e52a092491c8cc7f4f6c12ca84b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8yLTctMS0xLTU5OTYx_729cadf8-6d2d-4732-8dd8-ac0e6c3474ca"
      unitRef="usd">3630000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ifd744e52a092491c8cc7f4f6c12ca84b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8yLTktMS0xLTU5OTYx_cd7fb024-ccca-468c-99bb-1a5298d76259"
      unitRef="usd">256000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ifd744e52a092491c8cc7f4f6c12ca84b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8yLTExLTEtMS01OTk2MQ_8b490cdd-1bc7-4d69-b05c-95b256bc207f"
      unitRef="usd">3374000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ie7d88c8e8c1d4aaebed050b689fad28c_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8zLTEtMS0xLTU5OTYx_23a394b6-118a-4cfb-b3a8-57ee36ada793"
      unitRef="usd">40000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ie7d88c8e8c1d4aaebed050b689fad28c_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8zLTMtMS0xLTU5OTYx_daeee879-c7ab-4985-965c-db99adb13d1c"
      unitRef="usd">9000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ie7d88c8e8c1d4aaebed050b689fad28c_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8zLTUtMS0xLTU5OTYx_777a3c49-17a3-44b9-b060-81b24d927cdb"
      unitRef="usd">31000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="iea4406eb112640b8a9af74a3bee1cc86_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8zLTctMS0xLTU5OTYx_2546d59c-ca70-4a07-ade8-589848faa4fc"
      unitRef="usd">40000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="iea4406eb112640b8a9af74a3bee1cc86_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8zLTktMS0xLTU5OTYx_65557e21-0f94-4e57-8a92-0cdf5d72385c"
      unitRef="usd">5000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="iea4406eb112640b8a9af74a3bee1cc86_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV8zLTExLTEtMS01OTk2MQ_520b747c-084a-4e97-a5ae-51405044c357"
      unitRef="usd">35000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i8a99b2118b5240e2b36f85244f742e2f_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV80LTEtMS0xLTU5OTYx_74f7b4e1-6c73-4c5c-9b08-cc51612f574c"
      unitRef="usd">25017000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i8a99b2118b5240e2b36f85244f742e2f_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV80LTMtMS0xLTU5OTYx_e1b5ef3c-0389-4294-a6a0-a8026276f751"
      unitRef="usd">6763000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i8a99b2118b5240e2b36f85244f742e2f_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV80LTUtMS0xLTU5OTYx_8d9c799e-e638-4b83-8952-726cec704d70"
      unitRef="usd">18254000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i40e0c60cf6c14c78b1effe901b3b65cf_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV80LTctMS0xLTU5OTYx_8425b2f3-7fb7-4be7-865f-e582e9c4e140"
      unitRef="usd">22222000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i40e0c60cf6c14c78b1effe901b3b65cf_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV80LTktMS0xLTU5OTYx_571361c4-d32f-452d-b12a-538590a6067b"
      unitRef="usd">6432000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i40e0c60cf6c14c78b1effe901b3b65cf_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV80LTExLTEtMS01OTk2MQ_8ef3b0c9-8f0a-470f-9deb-518cf2efdd6d"
      unitRef="usd">15790000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV81LTEtMS0xLTU5OTYx_6912f13f-c550-44f0-825c-0f1c9b027238"
      unitRef="usd">28687000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV81LTMtMS0xLTU5OTYx_34711327-6628-47ef-9691-6a83582a4276"
      unitRef="usd">7074000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV81LTUtMS0xLTU5OTYx_63dc7029-2e45-4537-888d-651b23189cdb"
      unitRef="usd">21613000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV81LTctMS0xLTU5OTYx_b72c2a43-2c52-498c-9d4b-6422cb4d3a99"
      unitRef="usd">25892000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV81LTktMS0xLTU5OTYx_1416d5ee-6198-4286-bd14-158dd0c8484e"
      unitRef="usd">6693000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGFibGU6YWRkMzc1NTUwMmZkNGU2MjgwMGQyYWU2NjI1M2IyNDEvdGFibGVyYW5nZTphZGQzNzU1NTAyZmQ0ZTYyODAwZDJhZTY2MjUzYjI0MV81LTExLTEtMS01OTk2MQ_3b10ffa8-1a48-4874-be95-33eedbf0d309"
      unitRef="usd">19199000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGV4dHJlZ2lvbjo0M2U2ZGM2MjQwYTM0MjlkOThmZmVlM2MxM2RmZWZlOV8xMDk5NTExNjI4NTc2_484f2dff-97ce-4402-8748-99819842aff8"
      unitRef="usd">400000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzI5L2ZyYWc6NDNlNmRjNjI0MGEzNDI5ZDk4ZmZlZTNjMTNkZmVmZTkvdGV4dHJlZ2lvbjo0M2U2ZGM2MjQwYTM0MjlkOThmZmVlM2MxM2RmZWZlOV8xMDk5NTExNjI4NTYx_5830dbe4-b78e-49dc-9242-2993d82ad21c"
      unitRef="usd">500000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:MinorityInterestDisclosureTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfMzE0OQ_7c5d4e23-85d7-4133-ab5d-47d5e5c3e0c1">Purchase of Telos ID Non-controlling InterestsTelos ID was formed as a limited liability company under the Delaware Limited Liability Company Act in 2007. Prior to the IPO, the Company owned a 50% interest in Telos ID, with the remaining interest owned by Hoya ID Fund A, LLC ("Hoya") as the non-controlling interest. Distributions were made to the members only when and to the extent determined by Telos ID&#x2019;s Board of Directors, in accordance with its Operating Agreement.On October&#160;5, 2020, we entered into a Membership Interest Purchase Agreement between the Company and Hoya to purchase all of the Class&#160;B Units of Telos ID owned by Hoya (the &#x201c;Telos ID Purchase&#x201d;). Upon the closing of the Telos ID Purchase, Telos ID became our wholly owned subsidiary. On November&#160;23, 2020, the Telos ID Purchase was consummated with the Company transferring $30.0 million in cash and issuing 7.3 million shares of our common stock at $20.39 per share (which totals approximately $148.4 million); the total consideration transferred to Hoya was $178.4 million. As part of the common stock issuance, the Company recognized a credit to additional paid-in capital (&#x201c;APIC&#x201d;) of $148.4 million. The Company further recognized a debit to APIC of $173.9 million as part of the elimination of Hoya&#x2019;s non-controlling interest in Telos ID. The net impact to APIC associated with the acquisition of the additional 50% interest in Telos ID was a debit of $25.5 million. Hoya received the final distribution of $2.4 million in January 2021.</us-gaap:MinorityInterestDisclosureTextBlock>
    <us-gaap:MinorityInterestOwnershipPercentageByParent
      contextRef="i9d0614962706421ba3893632cf6ab433_I20161231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfNDk0NzgwMjMzOTgyOQ_b0c0ad13-b86f-497b-b1f3-da9575119af5"
      unitRef="number">0.50</us-gaap:MinorityInterestOwnershipPercentageByParent>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="i60e91674e993488aa271cc14644b496c_D20201123-20201123"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfNDQ0_4064b951-89de-4685-80ed-c8ce0da7ec66"
      unitRef="usd">30000000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued
      contextRef="i60e91674e993488aa271cc14644b496c_D20201123-20201123"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfNDY3_b0239b09-3940-48bd-bc19-59a3e4317c93"
      unitRef="shares">7300000</us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued>
    <us-gaap:BusinessAcquisitionSharePrice
      contextRef="i1b58860d0f6e4abea0fcba0102e8e927_I20201123"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfNTAw_dfb88247-b0af-46d1-a14a-619d413fd95b"
      unitRef="usdPerShare">20.39</us-gaap:BusinessAcquisitionSharePrice>
    <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable
      contextRef="i60e91674e993488aa271cc14644b496c_D20201123-20201123"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfNTQx_805bf5ce-aa43-4235-bf4a-1f69b085f42c"
      unitRef="usd">148400000</us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="i60e91674e993488aa271cc14644b496c_D20201123-20201123"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfNTk0_9e9202b5-2af4-4a30-accf-dfb8915ebfd8"
      unitRef="usd">178400000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCosts
      contextRef="i60e91674e993488aa271cc14644b496c_D20201123-20201123"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfNzEw_084ffe93-5634-4aa5-9046-8b3c6c40fcbb"
      unitRef="usd">148400000</us-gaap:AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCosts>
    <us-gaap:NoncontrollingInterestIncreaseFromBusinessCombination
      contextRef="i60e91674e993488aa271cc14644b496c_D20201123-20201123"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfNzY0_9a8dabfd-7a8a-4720-bdc0-c20a958f92ef"
      unitRef="usd">173900000</us-gaap:NoncontrollingInterestIncreaseFromBusinessCombination>
    <tls:AdditionalPercentageOfOwnershipAcquired
      contextRef="i60e91674e993488aa271cc14644b496c_D20201123-20201123"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfOTE1_b990d083-b657-40d7-a21d-361f9116b90d"
      unitRef="number">0.50</tls:AdditionalPercentageOfOwnershipAcquired>
    <tls:ImpactOfStockIssuanceToAdditionalPaidInCapitalFromBusinessCombination
      contextRef="i60e91674e993488aa271cc14644b496c_D20201123-20201123"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfOTU0_ce8be03f-aba8-414a-bd95-116f5ecca7ae"
      unitRef="usd">25500000</tls:ImpactOfStockIssuanceToAdditionalPaidInCapitalFromBusinessCombination>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="i690697e57fc04d7eb28b9d888528a2c7_D20210101-20210131"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF80Ni9mcmFnOjBiYzBhZDZjOGExNjRiOWNhNjE0ZTI4NDUzMDhkM2Q0L3RleHRyZWdpb246MGJjMGFkNmM4YTE2NGI5Y2E2MTRlMjg0NTMwOGQzZDRfMjk2NA_f3b8fd17-8ec8-4270-962f-d3318deb34e0"
      unitRef="usd">2400000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF81NS9mcmFnOjgwZTZlYTEyYmE2MTRhNGNiYzcwNjU4MDZlZGY2NTgyL3RleHRyZWdpb246ODBlNmVhMTJiYTYxNGE0Y2JjNzA2NTgwNmVkZjY1ODJfMTMyNg_a4baf2d2-b628-4668-b34e-43e0d91a501e">Fair Value Measurements&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accounting standard for fair value measurements provides a framework for measuring fair value and expands disclosures about fair value measurements.&#160; The framework requires the valuation of financial instruments using a three-tiered approach. The statement requires fair value measurement to be classified and disclosed in one of the following categories:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 1: Unadjusted quoted prices in active markets that are accessible at the measurement date for identical, unrestricted assets and liabilities;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 2: Quoted prices in markets that are not active, or inputs that are observable, either directly or indirectly, for substantially the full term of the asset or liability; or&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 3: Prices or valuation techniques that require inputs that are both significant to the fair value measurement and unobservable (i.e. supported by little or no market activity).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of March&#160;31, 2022 and December&#160;31, 2021, we did not have any financial instruments with significant Level 3 inputs and we did not have any financial instruments that are measured at fair value on a recurring basis.&lt;/span&gt;&lt;/div&gt;For certain of our non-derivative financial instruments, including receivables, accounts payable and other accrued liabilities, the carrying amount approximates fair value due to the short-term maturities of these instruments.</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMjcxNQ_dc09bbaa-accd-4052-af7b-d822d564db76">Income Taxes&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We established a valuation allowance for deferred tax assets if, based on the weight of available evidence, it is more likely than not that some portion or all of the deferred tax assets will not be realized. The realization of deferred tax assets is dependent upon the generation of future taxable income. We considered projected future taxable income, tax planning strategies, and reversal of taxable temporary differences in making this assessment. Based on available evidence, we have determined that a full valuation allowance is required as of March&#160;31, 2022 and December&#160;31, 2021.&#160;As of March&#160;31, 2022 and December&#160;31, 2021, we have recorded a net deferred tax liability of approximately $735,000 and $723,000, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We review and update our estimated annual effective tax rate each quarter. For the three months ended March 31, 2022 and 2021, we recorded an income tax provision of $71,000 and $34,000, respectively. For the three months ended March 31, 2022 and 2021, our estimated annual effective tax rate was primarily impacted by the overall valuation allowance position which reduced the net tax impact from taxable income or loss for both periods.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the provisions of ASC 740, we determined that there were approximately $1,149,000 and $1,056,000 of gross unrecognized tax benefits as of March&#160;31, 2022 and December&#160;31, 2021, respectively. Included in the balance of unrecognized tax benefits as of March&#160;31, 2022 and December&#160;31, 2021 were $174,000 of tax benefits that, if recognized, would impact the effective tax rate. Also included in the balance of unrecognized tax benefits as of March&#160;31, 2022 and December&#160;31, 2021 were $975,000 and $882,000, respectively, of tax benefits that, if recognized, would not impact the effective tax rate due to the Company&#x2019;s valuation allowance. The Company had accrued interest and penalties related to the unrecognized tax benefits of $174,000 and $170,000, which were recorded in other liabilities as of March&#160;31, 2022 and December&#160;31, 2021, respectively. We believe that the total amounts of unrecognized tax benefits will not significantly increase or decrease within the next 12 months.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMTY0OTI2NzQ0NzI2NA_26ccd2e4-2b43-4637-8287-a00324eb21e2"
      unitRef="usd">735000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMTY0OTI2NzQ0NzI3Mg_e3bfcdba-8e64-4206-b0e1-57fdd0e2a23c"
      unitRef="usd">723000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMzQ3_50899f20-f710-4259-be66-eded77180dad"
      unitRef="usd">71000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMzc1_a4e2f711-8cab-47c9-a2e6-85a2798d64e6"
      unitRef="usd">34000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMTk2NA_0c67c6a6-0da3-4e4a-acb4-0e1e9c772de3"
      unitRef="usd">1149000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMTk3MQ_3deffdf7-1993-4dd9-a1fb-1bfb39e6fc52"
      unitRef="usd">1056000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMjExNA_6832516a-4e3a-4d16-8880-e6ab5e867b3b"
      unitRef="usd">174000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMjExNA_b654482e-90dc-4304-8aed-13d99a163b4f"
      unitRef="usd">174000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <tls:UnrecognizedTaxBenefitsThatWouldNotImpactEffectiveTaxRate
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMjI3MA_f9aea7b1-028a-41f2-b897-cabe2d36402e"
      unitRef="usd">975000</tls:UnrecognizedTaxBenefitsThatWouldNotImpactEffectiveTaxRate>
    <tls:UnrecognizedTaxBenefitsThatWouldNotImpactEffectiveTaxRate
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMjI3Nw_d6640bd1-ca60-4167-be07-3d64850148ae"
      unitRef="usd">882000</tls:UnrecognizedTaxBenefitsThatWouldNotImpactEffectiveTaxRate>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMjUwNg_a2725937-3ab0-4234-90b1-fba63a464221"
      unitRef="usd">174000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
      contextRef="if34c252cb0d84ad89f5cefd7d797faba_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83My9mcmFnOmYxYjRkNjhmNDY5MzRiMWJhMjI2ZDdmMWFiYmVhZjMxL3RleHRyZWdpb246ZjFiNGQ2OGY0NjkzNGIxYmEyMjZkN2YxYWJiZWFmMzFfMjUxMw_dae20571-1db9-4c95-8cd7-38fb4a24b69a"
      unitRef="usd">170000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:RelatedPartyTransactionsDisclosureTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF84NS9mcmFnOjQzZjhhMjYxMzNlMjQyZjdiOGVmM2Y5MzVhMTA4OGRlL3RleHRyZWdpb246NDNmOGEyNjEzM2UyNDJmN2I4ZWYzZjkzNWExMDg4ZGVfMjIyMA_6f0860b4-b292-40b5-8b44-e3dfab43fb67">Related Party TransactionsEmmett J. Wood, the brother of our Chairman and CEO, has been an employee of the Company since 1996. The amounts paid to this individual as compensation were $512,000 and $218,000 for the three months ended March 31, 2022 and 2021, respectively. Additionally, Mr. Wood owned 94,547 and 73,562 shares of the Company&#x2019;s common stock as of March&#160;31, 2022 and December&#160;31, 2021, respectively.One of the Company&#x2019;s directors serves as a consultant to the Company. The amounts paid for his consultancy services were $25,000 and $71,000 for the three months ended March 31, 2022 and 2021, respectively. In February 2022, the director and the Company amended the consulting agreement to provide that the Company would pay the remainder of the director&#x2019;s consultancy fees for 2022 in a fixed price amount in the form of restricted stock units. The Company granted the director 26,091 restricted stock units on February&#160;1, 2022, which vest quarterly in four equal amounts through the end of the year, subject to the director&#x2019;s continued performance under the consulting agreement.</us-gaap:RelatedPartyTransactionsDisclosureTextBlock>
    <us-gaap:RelatedPartyTransactionAmountsOfTransaction
      contextRef="ia2a8f3fa55d240d4a0ff7c705ac78c20_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF84NS9mcmFnOjQzZjhhMjYxMzNlMjQyZjdiOGVmM2Y5MzVhMTA4OGRlL3RleHRyZWdpb246NDNmOGEyNjEzM2UyNDJmN2I4ZWYzZjkzNWExMDg4ZGVfMTk5_a3fa715e-32d2-4862-acdd-c59cc6ed9f6e"
      unitRef="usd">512000</us-gaap:RelatedPartyTransactionAmountsOfTransaction>
    <us-gaap:RelatedPartyTransactionAmountsOfTransaction
      contextRef="i09e7e8b1fa5a4228aa2fd965c591e80a_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF84NS9mcmFnOjQzZjhhMjYxMzNlMjQyZjdiOGVmM2Y5MzVhMTA4OGRlL3RleHRyZWdpb246NDNmOGEyNjEzM2UyNDJmN2I4ZWYzZjkzNWExMDg4ZGVfMjA2_6beeb554-6202-475c-ae49-971f148046a9"
      unitRef="usd">218000</us-gaap:RelatedPartyTransactionAmountsOfTransaction>
    <tls:NumberOfSharesHeldByRelatedParty
      contextRef="ie458ade5d35249b88098c760b6343ad5_I20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF84NS9mcmFnOjQzZjhhMjYxMzNlMjQyZjdiOGVmM2Y5MzVhMTA4OGRlL3RleHRyZWdpb246NDNmOGEyNjEzM2UyNDJmN2I4ZWYzZjkzNWExMDg4ZGVfMjcx_199a1b71-3ba2-4ec7-bf04-f3ff18d6f672"
      unitRef="shares">94547</tls:NumberOfSharesHeldByRelatedParty>
    <tls:NumberOfSharesHeldByRelatedParty
      contextRef="i8097d307f8aa4c03b69a9ef304a331b5_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF84NS9mcmFnOjQzZjhhMjYxMzNlMjQyZjdiOGVmM2Y5MzVhMTA4OGRlL3RleHRyZWdpb246NDNmOGEyNjEzM2UyNDJmN2I4ZWYzZjkzNWExMDg4ZGVfMTA5OTUxMTYzMDAxNg_e791bc5f-c10a-415d-a464-ce1019896059"
      unitRef="shares">73562</tls:NumberOfSharesHeldByRelatedParty>
    <us-gaap:RelatedPartyTransactionAmountsOfTransaction
      contextRef="i52683ad38d61441780cec94328756503_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF84NS9mcmFnOjQzZjhhMjYxMzNlMjQyZjdiOGVmM2Y5MzVhMTA4OGRlL3RleHRyZWdpb246NDNmOGEyNjEzM2UyNDJmN2I4ZWYzZjkzNWExMDg4ZGVfMTA5OTUxMTYzOTkyMw_89ffa24a-c6dd-456c-8bb9-c88099531317"
      unitRef="usd">25000</us-gaap:RelatedPartyTransactionAmountsOfTransaction>
    <us-gaap:RelatedPartyTransactionAmountsOfTransaction
      contextRef="i9942a778ceb144ea8413d7da2b1ade6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF84NS9mcmFnOjQzZjhhMjYxMzNlMjQyZjdiOGVmM2Y5MzVhMTA4OGRlL3RleHRyZWdpb246NDNmOGEyNjEzM2UyNDJmN2I4ZWYzZjkzNWExMDg4ZGVfMTA5OTUxMTYzOTkzMw_6958caa6-6901-465f-8dba-231f5481505f"
      unitRef="usd">71000</us-gaap:RelatedPartyTransactionAmountsOfTransaction>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i7cddfe7be326451db32e7f7444d750aa_D20220201-20220201"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF84NS9mcmFnOjQzZjhhMjYxMzNlMjQyZjdiOGVmM2Y5MzVhMTA4OGRlL3RleHRyZWdpb246NDNmOGEyNjEzM2UyNDJmN2I4ZWYzZjkzNWExMDg4ZGVfMTA5OTUxMTYzOTkxMw_dbdda3d9-f7ad-4245-bda1-ed68bb71a619"
      unitRef="shares">26091</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RleHRyZWdpb246OWJjY2Q1MDg3ZmIwNGJmMDllMWVhZWU5NjNhZTkyNTJfMjY0MQ_65775a9b-132f-449d-8e76-bd3c3ffbb677">Leases&lt;div style="margin-top:10pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We lease office space and equipment under non-cancelable operating and finance leases with various expiration dates, some of which contain renewal options.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of lease expense were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease cost&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;159&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;182&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-term lease cost (1)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finance lease cost&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="padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amortization of right-of-use assets&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;305&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;305&#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 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Interest on lease liabilities&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;179&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;196&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total finance lease cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;484&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="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="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;501&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total lease costs&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;652&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;687&#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:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1)&#160; Leases that have terms of 12 months or less&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted-average remaining lease terms and discount rates were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&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:70.098%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.115%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.206%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term (in years):&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finance leases&lt;/span&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7.1 years&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8.1 years&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating leases&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.6 years&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:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.3 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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate:&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 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finance leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.04&#160;&lt;/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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.04&#160;&lt;/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:'Times New Roman',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 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.75&#160;&lt;/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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.75&#160;&lt;/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:'Times New Roman',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="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future minimum lease commitments at March&#160;31, 2022 were as follows (in&#160;thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:10pt;font-weight:700;line-height:100%"&gt;Year Ending December 31,&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Operating Leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Finance Leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022 (excluding the three months ended March 31, 2022)&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;429&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,619&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;373&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,202&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,258&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,314&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,372&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;After 2026&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,972&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total lease payments&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;830&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,737&#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:'Times New Roman',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="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(38)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,787)&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:'Times New Roman',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 #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;792&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,950&#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:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental cash flow information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash paid for amounts included in the measurement of lease liabilities:&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="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="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash flows from operating activities - operating leases&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;194&#160;&lt;/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="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash flows from operating activities - finance leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;179&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;196&#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 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash flows from financing activities - finance leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;351&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;321&#160;&lt;/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;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeFinanceLeasesTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RleHRyZWdpb246OWJjY2Q1MDg3ZmIwNGJmMDllMWVhZWU5NjNhZTkyNTJfNjA0NzMxMzk2NTYzOQ_78e7cd6d-8560-4b29-9aa1-1cc7d96eac1b">Leases&lt;div style="margin-top:10pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We lease office space and equipment under non-cancelable operating and finance leases with various expiration dates, some of which contain renewal options.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of lease expense were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease cost&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;159&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;182&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-term lease cost (1)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finance lease cost&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="padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amortization of right-of-use assets&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;305&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;305&#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 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Interest on lease liabilities&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;179&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;196&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total finance lease cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;484&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="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="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;501&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total lease costs&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;652&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;687&#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:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1)&#160; Leases that have terms of 12 months or less&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted-average remaining lease terms and discount rates were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&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:70.098%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.115%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.206%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term (in years):&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finance leases&lt;/span&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7.1 years&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8.1 years&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating leases&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.6 years&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:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.3 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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate:&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 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finance leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.04&#160;&lt;/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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.04&#160;&lt;/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:'Times New Roman',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 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.75&#160;&lt;/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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.75&#160;&lt;/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:'Times New Roman',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="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future minimum lease commitments at March&#160;31, 2022 were as follows (in&#160;thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:10pt;font-weight:700;line-height:100%"&gt;Year Ending December 31,&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Operating Leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Finance Leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022 (excluding the three months ended March 31, 2022)&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;429&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,619&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;373&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,202&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,258&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,314&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,372&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;After 2026&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,972&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total lease payments&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;830&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,737&#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:'Times New Roman',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="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(38)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,787)&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:'Times New Roman',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 #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;792&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,950&#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:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental cash flow information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash paid for amounts included in the measurement of lease liabilities:&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="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="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash flows from operating activities - operating leases&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;194&#160;&lt;/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="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash flows from operating activities - finance leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;179&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;196&#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 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash flows from financing activities - finance leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;351&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;321&#160;&lt;/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;</us-gaap:LesseeFinanceLeasesTextBlock>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RleHRyZWdpb246OWJjY2Q1MDg3ZmIwNGJmMDllMWVhZWU5NjNhZTkyNTJfNjA0NzMxMzk2NTY0MA_69f9eb79-a8fe-463b-9c58-6ae1aab723da">&lt;div style="margin-top:10pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of lease expense were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease cost&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;159&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;182&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Short-term lease cost (1)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finance lease cost&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="padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amortization of right-of-use assets&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;305&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;305&#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 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Interest on lease liabilities&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;179&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;196&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total finance lease cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;484&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="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="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;501&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total lease costs&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;652&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;687&#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:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1)&#160; Leases that have terms of 12 months or less&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted-average remaining lease terms and discount rates were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&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:70.098%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.115%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.206%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term (in years):&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finance leases&lt;/span&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7.1 years&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8.1 years&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating leases&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.6 years&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:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.3 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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate:&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 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finance leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.04&#160;&lt;/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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.04&#160;&lt;/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:'Times New Roman',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 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.75&#160;&lt;/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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.75&#160;&lt;/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:'Times New Roman',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="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental cash flow information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash paid for amounts included in the measurement of lease liabilities:&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="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="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash flows from operating activities - operating leases&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;194&#160;&lt;/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="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash flows from operating activities - finance leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;179&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;196&#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 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash flows from financing activities - finance leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;351&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;321&#160;&lt;/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;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfMi0xLTEtMS02MjE1Ng_b892a284-c5cf-4854-8158-07072155a7c3"
      unitRef="usd">159000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfMi0zLTEtMS02MjE1Ng_d85993c6-b823-42fb-83b5-26fcae31ffb8"
      unitRef="usd">182000</us-gaap:OperatingLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfMy0xLTEtMS02MjE1Ng_d4a93989-6986-4f54-8e16-8ce578fa23ca"
      unitRef="usd">9000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfMy0zLTEtMS02MjE1Ng_27237f94-1113-422d-b0f2-7666e0d15403"
      unitRef="usd">4000</us-gaap:ShortTermLeaseCost>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfNS0xLTEtMS02MjE1Ng_3a001a66-3dd7-4e68-aa59-2fb84f789e27"
      unitRef="usd">305000</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfNS0zLTEtMS02MjE1Ng_591f0015-bece-4cf5-9676-7f3fb994cea3"
      unitRef="usd">305000</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfNi0xLTEtMS02MjE1Ng_8c20e4be-9f90-414f-8e27-8f317a2e4d4c"
      unitRef="usd">179000</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfNi0zLTEtMS02MjE1Ng_30cdd907-ab7b-408f-a9f4-845945318bf4"
      unitRef="usd">196000</us-gaap:FinanceLeaseInterestExpense>
    <tls:FinanceLeaseCost
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfNy0xLTEtMS02MjE1Ng_0f300f02-0fb8-4c59-89cc-450bb45ce1a7"
      unitRef="usd">484000</tls:FinanceLeaseCost>
    <tls:FinanceLeaseCost
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfNy0zLTEtMS02MjE1Ng_e1c2b64d-86f4-4204-a697-9044f32a4ede"
      unitRef="usd">501000</tls:FinanceLeaseCost>
    <us-gaap:LeaseCost
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfOC0xLTEtMS02MjE1Ng_c7509998-7a39-4880-8a5f-8f9378e620b1"
      unitRef="usd">652000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmNlODYxZmRkZWUyMzQ0OTdhMDRiMTZjNzc3OGRiNjE5L3RhYmxlcmFuZ2U6Y2U4NjFmZGRlZTIzNDQ5N2EwNGIxNmM3Nzc4ZGI2MTlfOC0zLTEtMS02MjE1Ng_97bb5fa4-bb14-4662-9460-8dba2a9b0f30"
      unitRef="usd">687000</us-gaap:LeaseCost>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjNiMTkwZmZjNjY2MjQwZjc5Y2JiZGFjNTllMjY4YTkxL3RhYmxlcmFuZ2U6M2IxOTBmZmM2NjYyNDBmNzljYmJkYWM1OWUyNjhhOTFfMy0xLTEtMS02MjE2Mw_e69119cc-fbfb-4c4d-8009-882e603d0f44">P7Y1M6D</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i6582bc760e524caaaaddc0e1f785db14_I20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjNiMTkwZmZjNjY2MjQwZjc5Y2JiZGFjNTllMjY4YTkxL3RhYmxlcmFuZ2U6M2IxOTBmZmM2NjYyNDBmNzljYmJkYWM1OWUyNjhhOTFfMy0zLTEtMS02MjE2Mw_11763e69-49d5-4f70-83af-b32122da84ab">P8Y1M6D</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjNiMTkwZmZjNjY2MjQwZjc5Y2JiZGFjNTllMjY4YTkxL3RhYmxlcmFuZ2U6M2IxOTBmZmM2NjYyNDBmNzljYmJkYWM1OWUyNjhhOTFfNC0xLTEtMS02MjE2Mw_9fbb6aee-9829-4a27-896d-34a829dc731a">P1Y7M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i6582bc760e524caaaaddc0e1f785db14_I20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjNiMTkwZmZjNjY2MjQwZjc5Y2JiZGFjNTllMjY4YTkxL3RhYmxlcmFuZ2U6M2IxOTBmZmM2NjYyNDBmNzljYmJkYWM1OWUyNjhhOTFfNC0zLTEtMS02MjE2Mw_81b4d412-9c57-436d-9eac-608c71ec6c59">P2Y3M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjNiMTkwZmZjNjY2MjQwZjc5Y2JiZGFjNTllMjY4YTkxL3RhYmxlcmFuZ2U6M2IxOTBmZmM2NjYyNDBmNzljYmJkYWM1OWUyNjhhOTFfNi0xLTEtMS02MjE2Mw_855e55dc-0a53-4d11-a8cb-414cf378dc7f"
      unitRef="number">0.0504</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent
      contextRef="i6582bc760e524caaaaddc0e1f785db14_I20210331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjNiMTkwZmZjNjY2MjQwZjc5Y2JiZGFjNTllMjY4YTkxL3RhYmxlcmFuZ2U6M2IxOTBmZmM2NjYyNDBmNzljYmJkYWM1OWUyNjhhOTFfNi0zLTEtMS02MjE2Mw_a754d550-6fa3-415c-852f-d0e7a11a70dd"
      unitRef="number">0.0504</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjNiMTkwZmZjNjY2MjQwZjc5Y2JiZGFjNTllMjY4YTkxL3RhYmxlcmFuZ2U6M2IxOTBmZmM2NjYyNDBmNzljYmJkYWM1OWUyNjhhOTFfNy0xLTEtMS02MjE2Mw_a0d3ae25-a699-46cf-958f-e0bf2b3156c1"
      unitRef="number">0.0575</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="i6582bc760e524caaaaddc0e1f785db14_I20210331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjNiMTkwZmZjNjY2MjQwZjc5Y2JiZGFjNTllMjY4YTkxL3RhYmxlcmFuZ2U6M2IxOTBmZmM2NjYyNDBmNzljYmJkYWM1OWUyNjhhOTFfNy0zLTEtMS02MjE2Mw_b75762dd-f8b7-4c86-8e28-13ed1c363ee0"
      unitRef="number">0.0575</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RleHRyZWdpb246OWJjY2Q1MDg3ZmIwNGJmMDllMWVhZWU5NjNhZTkyNTJfNjA0NzMxMzk2NTY0Mg_38d09bd6-2cea-47fe-8cf8-c5cbb8ae2beb">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future minimum lease commitments at March&#160;31, 2022 were as follows (in&#160;thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:10pt;font-weight:700;line-height:100%"&gt;Year Ending December 31,&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Operating Leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Finance Leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022 (excluding the three months ended March 31, 2022)&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;429&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,619&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;373&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,202&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,258&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,314&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,372&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;After 2026&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,972&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total lease payments&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;830&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,737&#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:'Times New Roman',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="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(38)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,787)&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:'Times New Roman',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 #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;792&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,950&#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:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RleHRyZWdpb246OWJjY2Q1MDg3ZmIwNGJmMDllMWVhZWU5NjNhZTkyNTJfNjA0NzMxMzk2NTY0Mg_b1258413-a6cb-4e14-9d54-28825fad72ec">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future minimum lease commitments at March&#160;31, 2022 were as follows (in&#160;thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.894%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.537%"/&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:10pt;font-weight:700;line-height:100%"&gt;Year Ending December 31,&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Operating Leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Finance Leases&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022 (excluding the three months ended March 31, 2022)&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;429&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,619&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;373&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,202&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,258&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,314&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,372&#160;&lt;/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="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;After 2026&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,972&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total lease payments&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;830&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,737&#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:'Times New Roman',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="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(38)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,787)&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:'Times New Roman',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 #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;792&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,950&#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:FinanceLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfMS0xLTEtMS02MjE5NA_ee472f22-b52a-4ca4-90b2-b5bd37a007e4"
      unitRef="usd">429000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfMS0zLTEtMS02MjE5NA_0e25e82d-da68-49f6-be67-ce053fcfc9af"
      unitRef="usd">1619000</us-gaap:FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfMi0xLTEtMS02MjE5NA_d9cb0c46-96fc-487e-9d58-53eadcca33d2"
      unitRef="usd">373000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfMi0zLTEtMS02MjE5NA_daa86bc9-3597-496e-b392-16d7f6e85c8b"
      unitRef="usd">2202000</us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfMy0xLTEtMS02MjE5NA_21fed964-82c6-4ef6-9460-2313ddb42d87"
      unitRef="usd">28000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfMy0zLTEtMS02MjE5NA_64c65dc8-e4d6-4497-8bd8-15797a782fdd"
      unitRef="usd">2258000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfNC0xLTEtMS02MjE5NA_fc132995-2f12-4a1f-8a09-d58f2e93c791"
      unitRef="usd">0</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfNC0zLTEtMS02MjE5NA_791f9f3f-a34b-4ff4-9457-c69071d88714"
      unitRef="usd">2314000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfNS0xLTEtMS02MjE5NA_b62aa94e-f193-4151-9237-413d613c66da"
      unitRef="usd">0</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfNS0zLTEtMS02MjE5NA_5dde949a-5ccf-4dda-b772-ea29e18e1c77"
      unitRef="usd">2372000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour>
    <tls:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfNi0xLTEtMS02MjE5NA_0397efae-c8a7-4579-b7aa-0d15fa6383f7"
      unitRef="usd">0</tls:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour>
    <tls:FinanceLeaseLiabilityToBePaidAfterYearFour
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfNi0zLTEtMS02MjE5NA_2aecac53-dc4f-4d44-a644-7c9580f8995e"
      unitRef="usd">5972000</tls:FinanceLeaseLiabilityToBePaidAfterYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfNy0xLTEtMS02MjE5NA_508c2353-5527-4973-ab17-43cbf995d1f7"
      unitRef="usd">830000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:FinanceLeaseLiabilityPaymentsDue
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfNy0zLTEtMS02MjE5NA_07f125ac-a068-4124-af71-f00cb1e8e777"
      unitRef="usd">16737000</us-gaap:FinanceLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfOC0xLTEtMS02MjE5NA_40772822-990b-4e23-bd20-6b790310bc01"
      unitRef="usd">38000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfOC0zLTEtMS02MjE5NA_8ded0832-9992-4fd4-ba42-28a0c8943a72"
      unitRef="usd">2787000</us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfOS0xLTEtMS02MjE5NA_a420cf11-1246-4a3e-9e4f-c7f2791ca6dd"
      unitRef="usd">792000</us-gaap:OperatingLeaseLiability>
    <us-gaap:FinanceLeaseLiability
      contextRef="ifc14ffd56fa149df9b34005d92d457ea_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOmRhNDAzNzhlNDJjMDRlNzc5ZjY4NWNhZThlN2JhOTkwL3RhYmxlcmFuZ2U6ZGE0MDM3OGU0MmMwNGU3NzlmNjg1Y2FlOGU3YmE5OTBfOS0zLTEtMS02MjE5NA_a6fa26fe-5865-4bc9-9856-135a27079a2f"
      unitRef="usd">13950000</us-gaap:FinanceLeaseLiability>
    <us-gaap:OperatingLeasePayments
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjY4MDFhMzRhY2IzNjQzODY5ZTA1NjJmYmVmMTMwM2M5L3RhYmxlcmFuZ2U6NjgwMWEzNGFjYjM2NDM4NjllMDU2MmZiZWYxMzAzYzlfMy0xLTEtMS02MjE5NA_40d2c8e7-aa4b-43ad-962c-9aeeb75e6417"
      unitRef="usd">173000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjY4MDFhMzRhY2IzNjQzODY5ZTA1NjJmYmVmMTMwM2M5L3RhYmxlcmFuZ2U6NjgwMWEzNGFjYjM2NDM4NjllMDU2MmZiZWYxMzAzYzlfMy0zLTEtMS02MjE5NA_822e01ee-d8b1-4111-a4e3-487e80faa5b1"
      unitRef="usd">194000</us-gaap:OperatingLeasePayments>
    <us-gaap:FinanceLeaseInterestPaymentOnLiability
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjY4MDFhMzRhY2IzNjQzODY5ZTA1NjJmYmVmMTMwM2M5L3RhYmxlcmFuZ2U6NjgwMWEzNGFjYjM2NDM4NjllMDU2MmZiZWYxMzAzYzlfNC0xLTEtMS02MjE5NA_f055fed6-e560-42b1-8c3e-1a9767d25b68"
      unitRef="usd">179000</us-gaap:FinanceLeaseInterestPaymentOnLiability>
    <us-gaap:FinanceLeaseInterestPaymentOnLiability
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjY4MDFhMzRhY2IzNjQzODY5ZTA1NjJmYmVmMTMwM2M5L3RhYmxlcmFuZ2U6NjgwMWEzNGFjYjM2NDM4NjllMDU2MmZiZWYxMzAzYzlfNC0zLTEtMS02MjE5NA_25f565a2-c5da-4e15-bffd-51cb0566190c"
      unitRef="usd">196000</us-gaap:FinanceLeaseInterestPaymentOnLiability>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjY4MDFhMzRhY2IzNjQzODY5ZTA1NjJmYmVmMTMwM2M5L3RhYmxlcmFuZ2U6NjgwMWEzNGFjYjM2NDM4NjllMDU2MmZiZWYxMzAzYzlfNS0xLTEtMS02MjE5NA_3b7047ba-d3e4-4276-9d1b-d68e5d797779"
      unitRef="usd">351000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85MS9mcmFnOjliY2NkNTA4N2ZiMDRiZjA5ZTFlYWVlOTYzYWU5MjUyL3RhYmxlOjY4MDFhMzRhY2IzNjQzODY5ZTA1NjJmYmVmMTMwM2M5L3RhYmxlcmFuZ2U6NjgwMWEzNGFjYjM2NDM4NjllMDU2MmZiZWYxMzAzYzlfNS0zLTEtMS02MjE5NA_cf1a4165-c4fd-49f6-8445-7a32e780e639"
      unitRef="usd">321000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDI0Mw_884bd166-3f2c-4008-ae15-1564a954d1e7">Stock-Based Compensation&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our 2016 LTIP provides for the grant of stock options, stock appreciation rights, restricted stock, restricted stock units, unrestricted stock and dividend equivalent rights to our senior executives, directors, employees, and other service providers. Awards granted under the 2016 LTIP vest over the periods determined by the Board of Directors or the Compensation Committee of the Board of Directors, generally &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNjE4_ab60baf3-4773-4564-92f1-2d9db1abbd49"&gt;one&lt;/span&gt; to three years. The stock options granted under the 2016 LTIP expire no more than&#160;ten years after the date of grant. No stock options granted under the 2016 LTIP are outstanding as of March 31, 2022. Approximately 0.5 million shares of our common stock were reserved for future grants as of March&#160;31, 2022 under the 2016 LTIP. The Company records stock-based compensation related to accrued compensation in which it intends to settle in shares of the Company&#x2019;s common stock. However, it is the Company&#x2019;s discretion on whether this compensation will ultimately be paid in stock or cash as it has the right to dictate the form of these payments up until the date at which they are paid. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accounting for stock-based compensation requires that the cost resulting from all stock-based payments be recognized in the financial statements based on the grant date fair value of the award. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following are the stock-based compensation expense incurred for the Service-Based and Performance-Based RSUs, net of forfeitures, and accrued compensation (in thousands). There were no income tax benefits recognized on the share-based compensation expense for both periods.&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:69.806%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.666%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.498%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of sales - services&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;625&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sales and marketing&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,547&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,312&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;461&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;General and administrative&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,037&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#160;&#160;&#160;Total stock-based compensation expense&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,298&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,670&#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="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Stock Awards and Restricted Stock Unit (collectively &#x201c;RSU&#x201d;) Activity&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company grants RSUs to our senior executives, directors, employees and service providers. Our stock-based compensation primarily consists of service-based RSUs and performance-based RSUs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Service-Based RSU Awards&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of the awards of Service-Based RSUs that vest upon the completion of a service requirement is presented below:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:41.988%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Number of&lt;br/&gt;Shares&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-&lt;br/&gt;Average Grant&lt;br/&gt;Date Fair&lt;br/&gt;Value&lt;br/&gt;(per share)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Contractual&lt;br/&gt;Life (years)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&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="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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="3" style="border-top:1pt solid #000000;padding:0 1pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(in thousands)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;For the Three Months Ended March 31, 2022&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Beginning balance - unvested&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,030,608&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34.94&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.3&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46,700&#160;&lt;/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:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,438,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10.19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,328,876)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33.38&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(81,259)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35.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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Ending balance - unvested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,059,075&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18.38&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.1&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,043&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;For the Three Months Ended March 31, 2021&lt;/span&gt;&lt;/td&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;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Beginning balance - unvested&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;59,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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.4&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,674,863&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36.56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,900)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36.63&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Ending balance - unvested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,728,484&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35.76&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.9&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;103,500&#160;&lt;/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:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of March&#160;31, 2022, there was approximately $79.6 million of unrecognized stock-based compensation expense related to Service-Based RSUs, and this unrecognized expense is expected to be recognized over a weighted-average period of 1.5 years on a straight-line basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Performance-Based RSU Awards&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of the awards of Performance-Based RSUs that vest upon the attainment of certain price targets of the Company&#x2019;s common stock is presented below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:41.988%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Number of&lt;br/&gt;Shares&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-&lt;br/&gt;Average Grant&lt;br/&gt;Date Fair&lt;br/&gt;Value&lt;br/&gt;(per share)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Contractual&lt;br/&gt;Life (years)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&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="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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="3" style="border-top:1pt solid #000000;padding:0 1pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(in thousands)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;For the Three Months Ended March 31, 2022&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Beginning balance - unvested&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;492,727&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30.07&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.2&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,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;/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:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(52,941)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Ending balance&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;439,786&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29.97&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.8&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,385&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;For the Three Months Ended March 31, 2021&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;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Beginning balance&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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;438,403&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Ending balance - unvested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;438,403&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.2&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2021 the Company granted certain senior executives awards of Performance-Based RSUs that could settle into 458,903 shares of our common stock. The awards will vest only if, during the three-year period from the date of grant, (a) the Company&#x2019;s common stock, as listed on the Nasdaq Global Market, trades at or above $42.50 per share (the &#x201c;Target Price&#x201d;) for 20 of 30 consecutive trading days or (b) the weighted-average of the per-share price of the Company&#x2019;s common stock over any 30 days consecutive trading days is at least equal to the Target Price. Further, the Company granted 50,000 shares of Performance-Based RSUs to certain employees that will fully vest upon achieving certain operational milestones during a three-year period from the grant date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the Performance-Based RSUs containing market conditions, the conditions are required to be considered when calculating the grant date fair value. In order to reflect the substantive characteristics of these awards, a Monte Carlo simulation valuation model was used to calculate the grant date fair value of such awards. Monte Carlo approaches are a class of computational algorithms that rely on repeated random sampling to compute their results. This approach allows the calculation of the value of such Performance-Based RSUs based on a large number of possible stock price path scenarios. As the Company recently completed its IPO in November 2020, expected volatility was based on the average historical stock price volatility of comparable publicly-traded companies over the performance period. The risk-free rate is based on the U.S. Treasury zero-coupon issues in effect at the time of grant over the performance period. The expense for these awards is recognized over the derived service period as determined through the Monte Carlo simulation model.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our key assumptions include a performance period ranging from 2.45 to 2.92 years, expected volatility between 57.4% - 58.8%, and a risk-free rate of 0.18% - 0.29%. The fair value at the grant date and derived service periods calculated for these market condition Performance-Based RSUs were $19.12 - $30.84 and between 0.38 - 0.76 years, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of March 31, 2022, there was approximately $1.1 million of unrecognized stock-based compensation expense related to these Performance-Based RSUs, and this unrecognized expense is expected to be recognized over a weighted-average period of 1.7 years on a straight-line basis.&lt;/span&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i293a0bacce8e444d832665ede8b15184_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNjI0_9b70465a-3b11-435e-913e-66e2c9d48817">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="i77fbbaa00c2f455cad99210eaa759a54_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNjk5_afa6e796-ec4e-4883-bb4e-546e84056da7">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="ia571eafcfa3042938497593c53268742_I20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDM5ODA0NjUyOTEyOQ_79260135-b123-47de-9a10-1c51009a8163"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="ia571eafcfa3042938497593c53268742_I20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNzQx_34dcd03c-7a7c-4ab1-abb9-c2b0c167e9c4"
      unitRef="shares">500000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDM5ODA0NjUyNjI4MA_d2403070-b4b4-49bf-bd10-7f259ef441b6">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following are the stock-based compensation expense incurred for the Service-Based and Performance-Based RSUs, net of forfeitures, and accrued compensation (in thousands). There were no income tax benefits recognized on the share-based compensation expense for both periods.&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:69.806%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.666%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.498%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of sales - services&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;625&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sales and marketing&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,547&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,312&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;461&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;General and administrative&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,037&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#160;&#160;&#160;Total stock-based compensation expense&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,298&#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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,670&#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:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i7a40b068e3774f5c8c42f14972a61116_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjI1ZWIyNjI0N2RjNDQ2NTk4NWEzZDEzMmRlOTc5Yjk5L3RhYmxlcmFuZ2U6MjVlYjI2MjQ3ZGM0NDY1OTg1YTNkMTMyZGU5NzliOTlfMi0xLTEtMS02MjI4OQ_edf89534-404d-4146-9589-338337b212fc"
      unitRef="usd">1006000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ie1a78a763b65447c938a7459d8754e96_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjI1ZWIyNjI0N2RjNDQ2NTk4NWEzZDEzMmRlOTc5Yjk5L3RhYmxlcmFuZ2U6MjVlYjI2MjQ3ZGM0NDY1OTg1YTNkMTMyZGU5NzliOTlfMi0zLTEtMS02MjI4OQ_42cd0f44-2dfc-4daa-8979-834725ec5e45"
      unitRef="usd">625000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ie30f7fa243734bc3b3d8848226303e16_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjI1ZWIyNjI0N2RjNDQ2NTk4NWEzZDEzMmRlOTc5Yjk5L3RhYmxlcmFuZ2U6MjVlYjI2MjQ3ZGM0NDY1OTg1YTNkMTMyZGU5NzliOTlfMy0xLTEtMS02MjI4OQ_2c300b82-8eb8-441e-bc33-150e654e1f33"
      unitRef="usd">1669000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ia85b7e926eb74ac4968672145e29fa9a_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjI1ZWIyNjI0N2RjNDQ2NTk4NWEzZDEzMmRlOTc5Yjk5L3RhYmxlcmFuZ2U6MjVlYjI2MjQ3ZGM0NDY1OTg1YTNkMTMyZGU5NzliOTlfMy0zLTEtMS02MjI4OQ_24b06308-ed19-49c4-ae84-4fbfb8e849e5"
      unitRef="usd">1547000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="if1352f8253114148952bedf4ae9ddb75_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjI1ZWIyNjI0N2RjNDQ2NTk4NWEzZDEzMmRlOTc5Yjk5L3RhYmxlcmFuZ2U6MjVlYjI2MjQ3ZGM0NDY1OTg1YTNkMTMyZGU5NzliOTlfNC0xLTEtMS02MjI4OQ_f040b56b-5249-4b85-8da8-1981d854a550"
      unitRef="usd">1312000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i0d2bcf6be73e49b88384966709bfc176_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjI1ZWIyNjI0N2RjNDQ2NTk4NWEzZDEzMmRlOTc5Yjk5L3RhYmxlcmFuZ2U6MjVlYjI2MjQ3ZGM0NDY1OTg1YTNkMTMyZGU5NzliOTlfNC0zLTEtMS02MjI4OQ_10308ab5-1fb5-4a22-ac74-43a9ad153af8"
      unitRef="usd">461000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i94ce4547a7ac4f029732a91e89b1f224_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjI1ZWIyNjI0N2RjNDQ2NTk4NWEzZDEzMmRlOTc5Yjk5L3RhYmxlcmFuZ2U6MjVlYjI2MjQ3ZGM0NDY1OTg1YTNkMTMyZGU5NzliOTlfNS0xLTEtMS02MjI4OQ_b0d6dae9-cc34-4ccb-946a-0d0a72f1bb2f"
      unitRef="usd">10311000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i81ed0e3b9ab54ec09b65d42d5f7fcc6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjI1ZWIyNjI0N2RjNDQ2NTk4NWEzZDEzMmRlOTc5Yjk5L3RhYmxlcmFuZ2U6MjVlYjI2MjQ3ZGM0NDY1OTg1YTNkMTMyZGU5NzliOTlfNS0zLTEtMS02MjI4OQ_23dc2595-989c-4aba-a1cb-65b2dd16cbfc"
      unitRef="usd">11037000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjI1ZWIyNjI0N2RjNDQ2NTk4NWEzZDEzMmRlOTc5Yjk5L3RhYmxlcmFuZ2U6MjVlYjI2MjQ3ZGM0NDY1OTg1YTNkMTMyZGU5NzliOTlfNi0xLTEtMS02NDIxNQ_1bed384b-fccb-4326-9f49-56ee02720ff6"
      unitRef="usd">14298000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjI1ZWIyNjI0N2RjNDQ2NTk4NWEzZDEzMmRlOTc5Yjk5L3RhYmxlcmFuZ2U6MjVlYjI2MjQ3ZGM0NDY1OTg1YTNkMTMyZGU5NzliOTlfNi0zLTEtMS02NDIwOA_b5f2c377-aaa4-43c4-a3fc-59752cc50750"
      unitRef="usd">13670000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDI0MQ_7b6861c3-86c6-417c-8f4e-40d29ca5e8fd">&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of the awards of Service-Based RSUs that vest upon the completion of a service requirement is presented below:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:41.988%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Number of&lt;br/&gt;Shares&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-&lt;br/&gt;Average Grant&lt;br/&gt;Date Fair&lt;br/&gt;Value&lt;br/&gt;(per share)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Contractual&lt;br/&gt;Life (years)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&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="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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="3" style="border-top:1pt solid #000000;padding:0 1pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(in thousands)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;For the Three Months Ended March 31, 2022&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Beginning balance - unvested&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,030,608&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34.94&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.3&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46,700&#160;&lt;/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:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,438,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10.19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,328,876)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33.38&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(81,259)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35.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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Ending balance - unvested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,059,075&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18.38&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.1&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,043&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;For the Three Months Ended March 31, 2021&lt;/span&gt;&lt;/td&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;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Beginning balance - unvested&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;59,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;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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.4&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,674,863&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36.56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,900)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36.63&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Ending balance - unvested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,728,484&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35.76&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.9&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;103,500&#160;&lt;/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 style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of the awards of Performance-Based RSUs that vest upon the attainment of certain price targets of the Company&#x2019;s common stock is presented below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:41.988%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.576%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.535%"/&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Number of&lt;br/&gt;Shares&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-&lt;br/&gt;Average Grant&lt;br/&gt;Date Fair&lt;br/&gt;Value&lt;br/&gt;(per share)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Contractual&lt;br/&gt;Life (years)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&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="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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="3" style="border-top:1pt solid #000000;padding:0 1pt"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(in thousands)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;For the Three Months Ended March 31, 2022&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Beginning balance - unvested&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;492,727&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30.07&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.2&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,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;/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:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(52,941)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Ending balance&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;439,786&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29.97&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.8&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,385&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;For the Three Months Ended March 31, 2021&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;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Beginning balance&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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;438,403&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Ending balance - unvested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;438,403&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.2&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i253b82786db24df49c24ca482c17e4aa_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMS0xLTEtMS01NzEyNw_a5db035a-1f28-4009-b242-807845ad00b6"
      unitRef="shares">3030608</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i253b82786db24df49c24ca482c17e4aa_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMS0zLTEtMS01NzEyNw_aa7c0d99-d58c-4d2f-b148-1f946f4e875f"
      unitRef="usdPerShare">34.94</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="iff0378154f6f43d8823360b124637669_D20211001-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMS01LTEtMS01NzEyNw_dbcf1235-fd7e-40e3-b15f-9ebc20776fd0">P1Y3M18D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="iff0378154f6f43d8823360b124637669_D20211001-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMS03LTEtMS01NzEyNw_bf5157d9-bd0d-4e2c-b41b-17fa0b884157"
      unitRef="usd">46700000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ic7617243a09b4ffab078de3072301640_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMi0xLTEtMS01NzEyNw_6604ef82-3d0f-479e-b895-ab522c9095fd"
      unitRef="shares">3438602</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="ic7617243a09b4ffab078de3072301640_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMi0zLTEtMS01NzEyNw_83af494f-9763-41f4-89dc-89d421b537fb"
      unitRef="usdPerShare">10.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="ic7617243a09b4ffab078de3072301640_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMy0xLTEtMS01NzEyNw_c3b715be-e289-4891-be84-876d1b56d720"
      unitRef="shares">1328876</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="ic7617243a09b4ffab078de3072301640_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMy0zLTEtMS01NzEyNw_7cd4eafb-767b-4efa-ae03-49e2795e758e"
      unitRef="usdPerShare">33.38</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="ic7617243a09b4ffab078de3072301640_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfNC0xLTEtMS01NzEyNw_8e68bf75-ff84-483f-9000-b436c7419618"
      unitRef="shares">81259</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="ic7617243a09b4ffab078de3072301640_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfNC0zLTEtMS01NzEyNw_3f21fd0b-6b00-4f7e-a3cf-7e2e75c429c6"
      unitRef="usdPerShare">35.83</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i30d743d3a027486fafd6007286623dad_I20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfNS0xLTEtMS01NzEyNw_5fcc6f4d-730c-49b9-899f-b7756b8b4359"
      unitRef="shares">5059075</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i30d743d3a027486fafd6007286623dad_I20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfNS0zLTEtMS01NzEyNw_c8002089-d7be-415b-afde-1f265b280063"
      unitRef="usdPerShare">18.38</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="ic7617243a09b4ffab078de3072301640_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfNS01LTEtMS01NzEyNw_eb7e5d12-e2b9-403a-a817-489bfaa9a1ea">P1Y1M6D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="ic7617243a09b4ffab078de3072301640_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfNS03LTEtMS01NzEyNw_1d5295b5-430a-4a80-8a92-84e39808f7b1"
      unitRef="usd">50043000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i976c13ad489f44d0abfeeca6fdbf4595_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfOS0xLTEtMS02NDI0OA_952cf6fe-3369-4d7d-9e05-866c8915f544"
      unitRef="shares">59521</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i976c13ad489f44d0abfeeca6fdbf4595_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfOS0zLTEtMS02NDI0OA_bffee16e-6b7e-4851-b478-b6bc0436b326"
      unitRef="usdPerShare">0.18</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="ia8e9bd04f3c9420eb15da53f1929c159_D20201001-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfOS01LTEtMS02NDI0OA_195b0a73-e4c4-4438-8042-cc3979c75026">P2Y4M24D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="ia8e9bd04f3c9420eb15da53f1929c159_D20201001-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfOS03LTEtMS02NDI0OA_aa05f7f6-7923-4d3f-a42b-e18ba2c27e5b"
      unitRef="usd">2000000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i5a319f0b5b384608ac6a78cc796ef83a_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMTAtMS0xLTEtNjQyNDg_20596c30-0045-4417-a7d0-1877c9211e02"
      unitRef="shares">2674863</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i5a319f0b5b384608ac6a78cc796ef83a_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMTAtMy0xLTEtNjQyNDg_a60a761f-da78-42af-bd45-fabf4c0a18a6"
      unitRef="usdPerShare">36.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i5a319f0b5b384608ac6a78cc796ef83a_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMTEtMS0xLTEtNjc1NTM_2fd3d553-8cb1-45a1-aa2e-652dbfaec082"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="i5a319f0b5b384608ac6a78cc796ef83a_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMTEtMy0xLTEtNjQyNDg_55ad6329-8723-4d9a-847e-fca24c502091"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i5a319f0b5b384608ac6a78cc796ef83a_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMTItMS0xLTEtNjQyNDg_5946c2fc-ec46-45a3-a0a2-bcf4eef03076"
      unitRef="shares">5900</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="i5a319f0b5b384608ac6a78cc796ef83a_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMTItMy0xLTEtNjQyNDg_3b786044-a20f-43fa-a198-1aeb1db7197e"
      unitRef="usdPerShare">36.63</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i723f1409b67448b697415d5b9b8db809_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMTMtMS0xLTEtNjQyNDg_da12bc8c-24a6-45c0-b4b7-ee54bc8825ce"
      unitRef="shares">2728484</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i723f1409b67448b697415d5b9b8db809_I20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMTMtMy0xLTEtNjQyNDg_f90cd887-be7f-4b48-b20e-09b1d9205e85"
      unitRef="usdPerShare">35.76</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="i5a319f0b5b384608ac6a78cc796ef83a_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMTMtNS0xLTEtNjQyNDg_eb189975-7e6e-4d34-ac57-679c56b858f6">P1Y10M24D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="i5a319f0b5b384608ac6a78cc796ef83a_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOmU0MjVlMWZhOGFmMzQzYmViZjliNDJlNjQ4MGRkYzJhL3RhYmxlcmFuZ2U6ZTQyNWUxZmE4YWYzNDNiZWJmOWI0MmU2NDgwZGRjMmFfMTMtNy0xLTEtNjQyNDg_06011c48-df1a-409f-a592-376e57c242fc"
      unitRef="usd">103500000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="i30d743d3a027486fafd6007286623dad_I20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTUzOQ_b59f57b2-c9bf-4ee1-a437-4d2365d70267"
      unitRef="usd">79600000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ic7617243a09b4ffab078de3072301640_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTcxNQ_1addcdc3-b016-4f44-8b80-afa353323fe5">P1Y6M</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i4427f9d065c2420d801ccdfc61467875_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMS0xLTEtMS01NzEyNw_ad0ba695-5153-48ba-83cf-7d348d3769a2"
      unitRef="shares">492727</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i4427f9d065c2420d801ccdfc61467875_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMS0zLTEtMS01NzEyNw_da8ec97e-b923-4b09-b338-df5c9b032d08"
      unitRef="usdPerShare">30.07</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="i4bf8d7a95e1c4f348e0a3080f26ebda0_D20211001-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMS01LTEtMS01NzEyNw_7a1363b9-0355-46ae-b43e-7fcda3dba23a">P2Y2M12D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="i4bf8d7a95e1c4f348e0a3080f26ebda0_D20211001-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMS03LTEtMS01NzEyNw_d87fa25d-60df-4c0a-b4c4-a195b567dcd5"
      unitRef="usd">7600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMi0xLTEtMS01NzEyNw_d9f8f3e4-4a16-4ef7-9d69-d4e564b50561"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMi0zLTEtMS01NzEyNw_8fb6f5c7-f694-4abb-93e6-175481eee036"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMy0xLTEtMS01NzEyNw_c935c348-7675-4b8c-9ffe-3d50e12a91c7"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMy0zLTEtMS01NzEyNw_7b9e72f1-f7fb-4cdd-a465-b3b5bf9df7dd"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfNC0xLTEtMS01NzEyNw_b4c71fc9-3115-40c4-9ecb-347f85d80a87"
      unitRef="shares">52941</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfNC0zLTEtMS01NzEyNw_a3e796ee-8da5-419a-8364-0012414626ce"
      unitRef="usdPerShare">30.84</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i689be82c00b0483597119a640c2193cf_I20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfNS0xLTEtMS01NzEyNw_ef6a1cc4-0273-4abc-b5c7-46427b33d497"
      unitRef="shares">439786</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i689be82c00b0483597119a640c2193cf_I20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfNS0zLTEtMS01NzEyNw_266970b4-6f1c-4883-88dc-361f77a1f196"
      unitRef="usdPerShare">29.97</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfNS01LTEtMS01NzEyNw_0cb2091a-4bdd-4cf8-8867-9fe74511bd4c">P1Y9M18D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfNS03LTEtMS01NzEyNw_a7212dad-0d26-4bec-b944-8beaa7c93fb5"
      unitRef="usd">4385000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="ic8c4caaee2814b109ef8812b67dc4faf_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfOS0xLTEtMS02NDI5Ng_e9f531d7-bd97-45fa-852e-ccb5dbb4744f"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="ic8c4caaee2814b109ef8812b67dc4faf_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfOS0zLTEtMS02NDMyMg_0f6660cd-a5d3-444f-86c3-5cd9928d529b"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="i9aa5aef9f1e046b3a98a87304eb4fdaf_D20201001-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfOS03LTEtMS02NDMyMg_903390f4-f9aa-4e03-8a1e-25a07d7c2463"
      unitRef="usd">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ia674a102136040aaa2f5728af1ce9dc8_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMTAtMS0xLTEtNjQyOTY_d8327c0d-87e7-4a22-b907-a3263da5ead2"
      unitRef="shares">438403</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="ia674a102136040aaa2f5728af1ce9dc8_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMTAtMy0xLTEtNjQyOTY_8b7d6d2a-cc74-4689-a2a8-b3c9c79841f2"
      unitRef="usdPerShare">30.84</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="ia674a102136040aaa2f5728af1ce9dc8_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMTEtMS0xLTEtNjQzMjI_594eee2c-08b5-4cc5-a3c2-2a16e4246818"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="ia674a102136040aaa2f5728af1ce9dc8_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMTEtMy0xLTEtNjQzMjI_63aa33b0-03d2-4fc5-b7dd-e2cbb0a3d33a"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="ia674a102136040aaa2f5728af1ce9dc8_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMTItMS0xLTEtNjQzMjI_f203c33b-ee73-4e9f-8783-547fa40423c5"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="ia674a102136040aaa2f5728af1ce9dc8_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMTItMy0xLTEtNjQzMjI_398133d5-8649-4199-985a-d7985751c055"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i62057e8ed46a4e49b25fe48ccf010648_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMTMtMS0xLTEtNjQyOTY_a50721a1-5f93-45f3-b420-564173b74139"
      unitRef="shares">438403</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i62057e8ed46a4e49b25fe48ccf010648_I20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMTMtMy0xLTEtNjQyOTY_9cfdaa78-734d-43ae-8ee7-99da28290890"
      unitRef="usdPerShare">30.84</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="ia674a102136040aaa2f5728af1ce9dc8_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMTMtNS0xLTEtNjQyOTY_cc2299c9-1139-4c96-afcb-ee80360352fd">P0Y2M12D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="ia674a102136040aaa2f5728af1ce9dc8_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RhYmxlOjg2MWI2NTFkNGVkMTRkYjA5YTI5YTIwNDU2MTdjY2ZjL3RhYmxlcmFuZ2U6ODYxYjY1MWQ0ZWQxNGRiMDlhMjlhMjA0NTYxN2NjZmNfMTMtNy0xLTEtNjQyOTY_40fc1ab9-042e-43f3-84d0-f64e31b27865"
      unitRef="usd">16600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ib1286b03483c4bcbb2adc99b53b1fbb9_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzNTI1OQ_51491dc8-b848-42a2-896e-296db6579c50"
      unitRef="shares">458903</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ib1286b03483c4bcbb2adc99b53b1fbb9_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDM5ODA0NjUyOTEyOA_e3797a2f-f5f6-4f36-ab72-d956df33378a">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <tls:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingThresholdStockPriceTrigger
      contextRef="i5c15eeb2a5524cceb915744d2579ae2d_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzNTI0MQ_dae223e5-953a-4956-8e83-d5198395187a"
      unitRef="usdPerShare">42.50</tls:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingThresholdStockPriceTrigger>
    <tls:NumberOfConsecutiveTradingDaysRequiredForSharesToVest
      contextRef="ib1286b03483c4bcbb2adc99b53b1fbb9_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzNTI3Mw_e63d2348-386d-4a83-97b5-a609788af226">P20D</tls:NumberOfConsecutiveTradingDaysRequiredForSharesToVest>
    <tls:NumberOfAllocatedConsecutiveTradingDaysRequiredForSharesToVest
      contextRef="ib1286b03483c4bcbb2adc99b53b1fbb9_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzNTI3OA_c9f5557e-ddef-4478-827b-ae7188d114e4">P30D</tls:NumberOfAllocatedConsecutiveTradingDaysRequiredForSharesToVest>
    <tls:WeightedAverageOfConsecutiveTradingDaysRequiredForSharesEqualToTargetPrice
      contextRef="ib1286b03483c4bcbb2adc99b53b1fbb9_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzNTI4NQ_45aa6927-efe9-4323-a534-5caeeeb3b086">P30D</tls:WeightedAverageOfConsecutiveTradingDaysRequiredForSharesEqualToTargetPrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i771bcdc5bc2f43b39cab8cc5b6bfb277_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzNTI2OA_d04be46c-6be4-4176-a2df-5df66ee74d99"
      unitRef="shares">50000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i0796a0be42b94b44895a969dd7ead69b_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDM5ODA0NjUyOTE0MA_bd819508-bfe3-4649-8874-654029b58401">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i0d2113854cb8406aab764083136f95e5_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDM5ODA0NjUyNjI5Ng_c1ab4ccc-14c2-4376-ae59-094ab46e95b1">P2Y5M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i374596cdc0d14126b69973a367311d81_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzODM5NA_ab013167-50b3-41bd-9f50-7c1ce3791d9c">P2Y11M1D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzODQwMg_b6b60c79-c27d-4df7-a3f1-1a88cfb8f9e9"
      unitRef="number">0.574</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDM5ODA0NjUyNjI4Mg_636d73d8-96ac-4d2c-9e5c-43aff692300d"
      unitRef="number">0.588</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzODQxMA_92fcabb4-9cec-4fd1-bdc6-17a1f53abb05"
      unitRef="number">0.0018</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDM5ODA0NjUyNjI4OQ_a014edb8-1fba-4ea0-b146-6e5af8632e98"
      unitRef="number">0.0029</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="ie7d18cdf684b4a2bbadfb094f292d08a_I20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDM5ODA0NjUyNjMwMg_70ee2c8f-8b36-4160-a758-7e470db98133"
      unitRef="usdPerShare">19.12</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i996f7629cd83451da2e45ec9bd4aa929_I20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzODQxOQ_46a44e58-23ff-49b6-82f1-15c7761070c8"
      unitRef="usdPerShare">30.84</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1
      contextRef="i0d2113854cb8406aab764083136f95e5_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzODQyNg_2d7c7003-643b-47d1-9ba1-e7010240501c">P0Y4M17D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1
      contextRef="i374596cdc0d14126b69973a367311d81_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfNDM5ODA0NjUyNjMwOQ_73bad741-3209-443a-bea9-1427a4817d6b">P0Y9M3D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="i689be82c00b0483597119a640c2193cf_I20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzOTg1Mg_143ab29b-6b01-459c-b29d-7283946808ba"
      unitRef="usd">1100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ib517e21e681e4b43b3793a2bb0a61dfa_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF85Ny9mcmFnOmY4ODkxOGQ5M2I1NDQ0YzliYjIwOTc3MzQzOTJkZmJjL3RleHRyZWdpb246Zjg4OTE4ZDkzYjU0NDRjOWJiMjA5NzczNDM5MmRmYmNfMTA5OTUxMTYzOTg1OA_7d8d3921-01e6-4835-8f28-709dd0a6d44d">P1Y8M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGV4dHJlZ2lvbjo4ODAxOTFkMDg0ZDA0MTdmOGNlNmQyOTA3MTEwODJhYV80Mzk4MDQ2NTE0NzY5_b25d5a0c-48f7-4249-9d0f-d1d1a87001b8">Segment InformationDuring the fourth quarter of 2021, as a result of the segment reorganization, our CODM began evaluating, overseeing and managing the financial performance of our operations through two operating segments: Security Solutions and Secure Networks. The segments enable the alignment of our strategies and objectives and provide a framework for timely and rational allocation of resources within the lines of business. We eliminate any inter-segment revenues and expenses upon consolidation.&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Security Solutions segment is primarily focused on cybersecurity, cloud and identity solutions through Xacta, Telos Ghost, AMHS and Telos ID offerings. We recognize revenue on contracts from providing various system platforms in the cloud, on-premises and/or in hybrid cloud environment, as well as software sales or software-as-a-service. Revenue associated with the segment's custom solutions is recognized as work progresses or upon delivery of services. Fluctuation in revenue from period to period is the result of the volume of software sales, and progress or completion of cloud and/or cyber security solutions during the period. The majority of the operating costs relates to labor, material, and overhead costs. Software sales have immaterial operation costs associated with them, thus yielding higher margins. Gross profit and margin are a function of operational efficiency on security solutions and changes in the volume of software sales. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Secure Networks segment provides secure networking architectures and solutions to our customers through secure mobility solutions and network management and defense services. Revenue is recognized over time as the work progresses on contracts related to managing network services and information delivery. Contract costs include labor, material and overhead costs. Variances in costs recognized from period to period primarily reflect increases and decreases in activity level on individual contracts. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes business segment information for the periods presented, and a reconciliation of those results to the statement of operations for the relevant periods. Prior period segment information was recast to conform to the current year's presentation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.883%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:56.835%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.393%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.878%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.394%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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: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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(in thousands)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenues&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Security Solutions&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,919&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,829&#160;&lt;/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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Secure Networks&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Consolidated revenue&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,160&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,757&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross profit&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 19pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Security Solutions&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,051&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,326&#160;&lt;/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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Secure Networks&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,820&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,143&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total gross profit&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #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:'Times New Roman',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:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,871&#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 style="background-color:#cceeff;border-bottom:1pt solid #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:'Times New Roman',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:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,469&#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:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We measure each segment's profitability based on gross profit. We account for inter-segment sales and transfers as if the sales or transfers were to third parties, that is, at current market prices. Interest income, interest expense, other income and expense items and income taxes, as reported in the consolidated financial statements, are not part of the segment profitability measure, and are primarily recorded at the corporate level. Under U.S. government Cost Accounting Standards, indirect costs including depreciation and amortization expense, are collected in numerous indirect cost pools, which are then collectively allocated out to the Company&#x2019;s reportable segments based on a representative causal or beneficial relationship of the costs in the pool to the costs in the base. While depreciation and amortization expense is a component of the allocated costs, the allocation process precludes depreciation and amortization expense from being specifically identified by the Company&#x2019;s individual reportable and operating segments. For this reason, the non-cash items by a reportable and operating segment have not been reported above.&lt;/span&gt;&lt;/div&gt;Management does not utilize total assets by segment to evaluate segment performance or allocate resources. As a result, assets are not tracked by segment and therefore, total assets by segment are not disclosed.</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfOperatingSegments
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGV4dHJlZ2lvbjo4ODAxOTFkMDg0ZDA0MTdmOGNlNmQyOTA3MTEwODJhYV8xMDk5NTExNjI4MDIy_f6ee15b9-c10c-49ef-b767-ce0ac7e78f44"
      unitRef="segment">2</us-gaap:NumberOfOperatingSegments>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGV4dHJlZ2lvbjo4ODAxOTFkMDg0ZDA0MTdmOGNlNmQyOTA3MTEwODJhYV80Mzk4MDQ2NTE0Nzcw_d15c4c9c-70bc-43e7-897b-f884b980b4c4">&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes business segment information for the periods presented, and a reconciliation of those results to the statement of operations for the relevant periods. Prior period segment information was recast to conform to the current year's presentation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:94.883%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:56.835%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.393%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.878%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.394%"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Three Months Ended March 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="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&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-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;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: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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(in thousands)&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenues&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Security Solutions&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,919&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,829&#160;&lt;/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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Secure Networks&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Consolidated revenue&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,160&#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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,757&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross profit&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 19pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Security Solutions&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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,051&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,326&#160;&lt;/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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Secure Networks&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,820&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,143&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total gross profit&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #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:'Times New Roman',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:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,871&#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 style="background-color:#cceeff;border-bottom:1pt solid #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:'Times New Roman',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:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,469&#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;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1630bad81e884580bc9d0f917338e40e_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl80LTEtMS0xLTY0NDA0_627d5b77-7895-4958-98e0-bf5705dfdd9b"
      unitRef="usd">26919000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i87d27b86d3e74bd2ab305d176b1d18e6_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl80LTMtMS0xLTY0NDA0_ec60aba6-1e78-412d-8aaa-b34d5f9c1b0f"
      unitRef="usd">22829000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5a9e00e3d48a4c25a151bc81928a9e40_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl81LTEtMS0xLTY0NDA0_9133bede-98c6-4a95-954a-0c38c4d13449"
      unitRef="usd">23241000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id33af39f913d473baf73c4d7609c1f20_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl81LTMtMS0xLTY0NDA0_aa1ee373-5053-4ec8-8ab1-858cf8aadf18"
      unitRef="usd">32928000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl83LTEtMS0xLTY0NDA0_12975436-09c4-433b-ac43-3c5cabc848e6"
      unitRef="usd">50160000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl83LTMtMS0xLTY0NDA0_49912735-1add-4e5f-9b46-79ea0eba13a9"
      unitRef="usd">55757000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:GrossProfit
      contextRef="i1630bad81e884580bc9d0f917338e40e_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl8xMC0xLTEtMS02NDQwNA_c6ada8cd-3b2f-46cc-a210-2a2641661db1"
      unitRef="usd">15051000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i87d27b86d3e74bd2ab305d176b1d18e6_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl8xMC0zLTEtMS02NDQwNA_1922efc2-a7c5-4fe0-8747-806c30a51e18"
      unitRef="usd">9326000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i5a9e00e3d48a4c25a151bc81928a9e40_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl8xMS0xLTEtMS02NDQwNA_5fa3016f-1d18-44f8-9fdc-743deefa9c1c"
      unitRef="usd">3820000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="id33af39f913d473baf73c4d7609c1f20_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl8xMS0zLTEtMS02NDQwNA_c63ee762-b450-4b19-90fe-3f231660d918"
      unitRef="usd">5143000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl8xMi0xLTEtMS02NDQwNA_abf5b876-fc27-4e62-ab67-738d71308955"
      unitRef="usd">18871000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i6b0d9318b9494b89bb197b62dac49cf9_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF8xMzU5L2ZyYWc6ODgwMTkxZDA4NGQwNDE3ZjhjZTZkMjkwNzExMDgyYWEvdGFibGU6YzM5MTcxY2YxMzIzNGZiZmJlMjYxNTU5YmU5ZWI4MGYvdGFibGVyYW5nZTpjMzkxNzFjZjEzMjM0ZmJmYmUyNjE1NTliZTllYjgwZl8xMi0zLTEtMS02NDQwNA_4684b18b-3852-4dee-860b-8fe14063303b"
      unitRef="usd">14469000</us-gaap:GrossProfit>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="i5aa905f70b15431fb39c30b13b03e4a8_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOmY4NDA0N2IzYmJmZjRkNDA4ZGU4ZWNkZTYzYzMwN2QwL3NlYzpmODQwNDdiM2JiZmY0ZDQwOGRlOGVjZGU2M2MzMDdkMF83OS9mcmFnOjQwZjQ1MjQ0ZGQyOTQwZmY5YWViYmZhMzkzNjZjY2E4L3RleHRyZWdpb246NDBmNDUyNDRkZDI5NDBmZjlhZWJiZmEzOTM2NmNjYThfNjIzNw_d46c3469-9869-42b2-8d7a-d13695c7c267">Commitments and Contingencies&lt;div style="margin-top:10pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Legal Proceedings&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 7, 2022, Telos and certain of its current and former officers were named as defendants in a lawsuit filed in the United States District Court for the Eastern District of Virginia. In the complaint, the plaintiffs, who purport to represent a class of purchasers of Telos common stock between November 19, 2020 and November 12, 2021, allege that the defendants violated securities laws by failing to disclose delays relating to the launch of certain contracts between Telos and the Transportation Security Administration ("TSA") and the Centers for Medicare and Medicaid Services and to take into account those delays when providing a financial outlook of the Company&#x2019;s 2021 performance. The complaint seeks monetary damages in an unspecified amount. We dispute the claims described in the complaint and intend to defend the lawsuit vigorously.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In addition, the Company is a party to litigation arising in the ordinary course of business. In the opinion of management, while the results of such litigation cannot be predicted with any reasonable degree of certainty, the final outcome of such known matters will not, based upon all available information, have a material adverse effect on the Company's condensed consolidated financial position, results of operations or cash flows.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Other - Government Contracts&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a U.S. government contractor, we are subject to various audits and investigations by the U.S. government to determine whether our operations are being conducted in accordance with applicable regulatory requirements. U.S. government investigations of our operations, whether relating to government contracts or conducted for other reasons, could result in administrative, civil, or criminal liabilities, including repayments, fines or penalties being imposed upon us, suspension, proposed debarment, debarment from eligibility for future U.S. government contracting, or suspension of export privileges. Suspension or debarment could have a material adverse effect on us because of our dependence on contracts with the U.S. government. U.S. government investigations often take years to complete, and many result in no adverse action against us. We also provide products and services to customers outside of the United States, which are subject to U.S. and foreign laws and regulations and foreign procurement policies and practices. Our compliance with local regulations or applicable U.S. government regulations also may be audited or investigated.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
</xbrl>
