<?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:us-gaap="http://fasb.org/us-gaap/2021-01-31"
  xmlns:whd="http://cactuswellhead.com/20211231"
  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="whd-20211231.xsd" xlink:type="simple"/>
    <context id="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i4b9341dd8d72490eb77bf19ea738c41f_I20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
        </entity>
        <period>
            <instant>2021-06-30</instant>
        </period>
    </context>
    <context id="i836f44c6b5894c8f8724a4657414f252_I20220224">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-02-24</instant>
        </period>
    </context>
    <context id="i7f4852af47d34cceaf36e2a51af47b69_I20220224">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-02-24</instant>
        </period>
    </context>
    <context id="i655b6d1332a042ccaa667867cc072910_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i042c27445eef4d269e93e1ed9135b34a_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i1d083b30948143d68b2984b4f24305e8_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="id1c028c2dde14c139792bfef59a5925c_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i3d13687c310a4e81be8123ddd8b5c4d6_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i5075e470d1fa43029ac043b976a87940_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iaf59edf0aeab4907b4c4adfc8707e847_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i08abb4da138a45058bd94bbb14bb4ff8_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i6186e198c38043f1a79e1c8000936cd0_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i3415c6e4c0dc48e1bea8204206fbf3a6_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">whd:RentalRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7a1c40ec9c654ab289acd3e054f8f80a_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">whd:RentalRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i3c9ff75b50894a56941a8efc6382a7c9_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">whd:RentalRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i2f020b22fb354ab1ba391e731adb340c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7eb3e7d9088d46ea97fe7a98c0c73c3a_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ifc05c9b2701845deb1fc5881c4cb0e62_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i4a408a622ac847beb22742b201b94a35_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i74cfd7ef04394ce484cc443ecd9e2bdc_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="if58e366ab90e4028a731977b88107ae3_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="iee0451f8b36844fda1c45b5db32a3a26_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i0227207df0bc4a4b8546177030658826_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i0710bf48158e4438a6ba80a3019fe16d_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="ibab9af5359784af9b4f85cfd55a31cab_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="iefc4f7e9039f48fbb2de00a5490ac427_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i608e76cc51da4991b3dee889db7a5caa_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="id3eeeca0cd8f4323bfa42ea262b43537_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="if86df42f87db4dc2b1a6e3d1d917c77b_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ica0b6179c8b04c9d8824ec6846f71966_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i01e6b64832a04de0bf9a76b8deb174e5_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ia5494a8f924e4c7b82fecdba7f021293_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i999d1800dac54a039df20f69d41777f7_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="iba3ae95f479c48fbbe77c5c18ed3e082_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i2cb618511c554de9aea7b4a0afb28198_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i2332f598f97344be835510ac910517ff_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ia0ba4bd57e1b4ab88f7543150d44e9ee_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ife2d6f3fae2b4e39891dddc47374ddeb_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i519108f097904187ba2d2e68f522cc6e_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i495a08b9703a4d89afc5154d3e6737bd_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i1546ed3a266c4df7a06886687981a508_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i331cc9696c4f4a90af7229e38df57ee4_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i577c374d25604485b03e5c05b0e7bf59_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i71228a048d9d4f9a992866b757a598c1_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i3441307b58f9416aa18a32f51ad2cabb_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i994bb508dc1b42049c29df20698a1c20_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i9fdf83f28d1343eb9b6642656e6af664_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</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="i40bf40e559834eb481faccb9559d5217_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</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="i194da2238b8d4e11a227aed0bb237741_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</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="ib9717ab85aa64c948473585f57462535_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i506d0342ca764aa1bde6fbb55fbd7ff1_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7cfc37aa7596438f8332b6adf24a5493_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i61208c60b7f249ec989fde6c07411223_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i924ec9ad6f4247748a81d155ed74b996_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i1fbdbb3fad684189b74bd5f87e420eac_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i8a2d0ad7682843e491d93122efa54c95_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i1c41af5bb58f49edbdbb380015382efe_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if247837eecad4354a2dc86db354ef0d5_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ic05f4adb86e64910b1209ea9db7fdcbd_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</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="i6d52f1dc57ff47cb95ce58fbeb8036dd_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</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="i6bef579d99564c9dac7866304d3f1d03_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</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="i427d3220071f43dbabcfd28ac3b9a5be_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i4d69e82813d54eac87c9f055bf40fa17_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">whd:CactusLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i567436424b924a80b718840190fadba0_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">whd:CactusLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i99d7d201c9f44d7fa6143765554d1c03_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ibf4963e3a5354ac1a5db1f4900405381_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">whd:OneCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i36bf4009c9b34d75befe3b97069e3b2e_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">whd:OneCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i664108f4d0314686a56ecafd4b045fc2_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:CostOfGoodsProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:SupplierConcentrationRiskMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionBySupplierAxis">whd:SupplierOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i148a7a26e5f14e5ebdee3db037a5b0c9_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:CostOfGoodsProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:SupplierConcentrationRiskMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionBySupplierAxis">whd:SupplierTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i3d05f1e8a3df4400a75e186a6a0b2a78_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:CostOfGoodsProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:SupplierConcentrationRiskMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionBySupplierAxis">whd:SupplierOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i77dfc858bbe34705b863b8296c316004_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:CostOfGoodsProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:SupplierConcentrationRiskMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionBySupplierAxis">whd:SupplierOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i2e80bf9f4bc8402fbc3ccf93f36fccf8_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:CostOfGoodsProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:SupplierConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i8137d66a31fb47db8b994763726c88be_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:CostOfGoodsProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:SupplierConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ibd84e32f1d50494ba06c42d6cadaac69_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:ForwardContractsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i74f0beee727c418492000a655d1eda57_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:ForwardContractsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i183614ddfa9a42ea9a6822f25d83cdd5_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i962e64dea5934a6b88151d5639b1455c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i55a7df2e49b14406a9831af1d8e0ccce_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i54e64312a58746be95834495072e82b8_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i55f40ea9546747e0b0a649a1d7c501cc_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">whd:VehiclesUnderFinanceLeaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i8911b453a6ab4e27987e0e7b8d4f79f1_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">whd:RentalEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i814e2f65cf9149f7acf69a3235fe5d46_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">whd:RentalEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="if2d6b118446a43f5a27bff0c5fb5a439_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i5791342f9d12428cb8c6cbd0e4f8f90f_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">whd:ComputerAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i591e37750ebf4e4b99c760cf1ab95919_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i22fc0cbb12ea4a6784d2e8c7625bac58_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ibc34297ee0bd4ad1897d8c2318b45e87_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i001d367c741f4d168879bcfdbc21d043_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i0a819f5d76704f61ba4c26b41a3aabfd_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i1e02660dea9e4e17824d47b288dd989c_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ifaa03ab3699845e2b922d794fb9d99b0_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">whd:VehiclesUnderFinanceLeaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iae849b98fade42d0bde5a6e4c371851c_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">whd:VehiclesUnderFinanceLeaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ib68c76aa4d8e4709bd0f3c5ce8d81da1_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">whd:RentalEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i7c9587be059648399dd7de1c9058dc97_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">whd:RentalEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i75b209d8525f450f93dd35b109e268f2_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i9e10c4c1b48a46c4b2b84c642e789652_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i3a46cea3917143dfba3ee2cee02a0e81_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">whd:ComputerAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="idad733e516fe4fe8bff75bb195bba727_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">whd:ComputerAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="id17db54af007455db00adc1790ba837f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i89518a9c1418439dbfff4128764e9fdb_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i65d611a1640a4a09bef2d13be0ba7ec4_D20180821-20180821">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-08-21</startDate>
            <endDate>2018-08-21</endDate>
        </period>
    </context>
    <context id="i8e01dc4092b24427aacde764f3a0d352_I20180821">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-08-21</instant>
        </period>
    </context>
    <context id="ic7f846b4b4e245408abbd13f518326cd_I20180821">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-08-21</instant>
        </period>
    </context>
    <context id="ib9d299d0ea554bddbbb860770855dff7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i438ca648e5ee407a982b90a9ad57de84_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7b95ebc1f7834ff6be31ba19244b6823_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="idf113ca48c5d4a46995dfda9acc93b5c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i2b623fe43cdb4a548376af090f5e774d_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i09f268e1bfde4c3db8ac8fbb723b515a_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iab0c96fe8f2c42ff9f3669d620ded20e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i94381f9d21ec42549993965092794065_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i6b1288c0d3ca43db89e99b0c1d62c9cb_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i20746bab2cd548e6bebcc67c34f4bf18_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">whd:LondonInterbankOfferedRateThreeMonthMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="if65a69b841a940399ca6ea19f5814558_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">whd:LondonInterbankOfferedRateOneMonthMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i805889d367eb4a2a900948c18a69ca5a_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">whd:LondonInterbankOfferedRateThreeMonthMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if3bec20f9f3e4a7b864e324ba7311a26_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">whd:LondonInterbankOfferedRateOneMonthMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ia1cad7a05fe546bf9755f0ea75c83bae_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">whd:DeferredTaxAssetInvestmentInSubsidiaryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i562c39793cae4b9db83532b594eb8483_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">whd:DeferredTaxAssetInvestmentInSubsidiaryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ia5325533457c495ca67f0272a7683609_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">whd:DeferredTaxAssetInvestmentInSubsidiaryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i9cf201623c084003ae94d519f99a0338_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">whd:DeferredTaxAssetInvestmentInSubsidiaryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i29b7bbced0e14773b2ad24819e388815_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">whd:DeferredTaxAssetAccruedForeignTaxesAndStateCreditsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ifc718608ea02488b91d230273dc62c14_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i51ad48c6e5ba4de9bda1ba4df6dd50a8_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0b569bb6b92244d1aeb04411ad0d6e41_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">whd:LongTermIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i90d119ebdbda45f28b170594e4423b92_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">whd:LongTermIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i934359bb83dd4c14839ab67ec31f16a4_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">whd:LongTermIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="iddc0e63b911043b1b91b753aaf5e19fe_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i5ac63df8befd43aea1d3fd3fc59ac0be_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i70b38f47561d450aa9d7470c3b6cbe95_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i8a940c6ead4046e69c70d41fabadeee5_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i99a4c705834a4c69b0818775056cb226_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i8d5c0905a2f54e23a8f079f5280a23fa_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="if5083f5d1b634a06bf365766813831a7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ice0a0ac4d48946e1b53155cade6a8078_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i029f9c8cd3a44b9c96150c6b5a43668c_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i2513224f47774dcfa0b4a051ec32a6f1_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</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="i25d7ae9da61b4daf8efbdb7cad2189ca_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</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="ief86a319de7f44bc9402f27a7996ae28_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i215ffc16f88e4a36a5b2ebb605549bcd_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i3ac0ac3a20fd43b1b4f75382cc135fa1_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i6871250c1dae4b57911386c66d580f02_D20180212-20180212">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
        </entity>
        <period>
            <startDate>2018-02-12</startDate>
            <endDate>2018-02-12</endDate>
        </period>
    </context>
    <context id="ic33575fb6d594d809085e6944528c753_D20180201-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:CwUnitsRedeemedForClassCommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-02-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iff20bbd4d3b34ed9ab68b1963f4aaf2e_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:March2019SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="iae9172953f924af895e0ed343971fda3_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:OtherCWRedemptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ib718525dd0f145fb92d6edc6b4e747d2_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:OtherCWRedemptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i663f252f995a430cb638e4a0ea05867f_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:March2021SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ibf48a7c970c140baa8e00527685a78e9_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:June2021CadentRedemptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ifd486319dc7343eea028184a4bccf8c5_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:September2021CadentRedemptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ice72561f6ead4885a0c98d489d7bc1ea_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:OtherCWRedemptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="id59fa8a418c544b387130c9162cba75d_D20190320-20190320">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-03-20</startDate>
            <endDate>2019-03-20</endDate>
        </period>
    </context>
    <context id="i240f47bcdd914bdcbdfc516d299f710b_D20190321-20190321">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-03-21</startDate>
            <endDate>2019-03-21</endDate>
        </period>
    </context>
    <context id="i6d2784640fbd4165bb92bb094a32ef8f_D20190320-20190320">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-03-20</startDate>
            <endDate>2019-03-20</endDate>
        </period>
    </context>
    <context id="i9258d15917d545e2ad198c037e471799_D20190301-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-03-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i8b2ce9ac8bf0419490cce44895876f2b_D20210309-20210309">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:March2021SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-03-09</startDate>
            <endDate>2021-03-09</endDate>
        </period>
    </context>
    <context id="i3be941d883254384a39b8a175da6badc_I20210309">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:March2021SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-09</instant>
        </period>
    </context>
    <context id="i0349da0482d24189a39dfb1522dd59fd_D20210312-20210312">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:March2021SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-03-12</startDate>
            <endDate>2021-03-12</endDate>
        </period>
    </context>
    <context id="id741e60472294440a0fec0663fb6de58_D20210312-20210312">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:March2021SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-03-12</startDate>
            <endDate>2021-03-12</endDate>
        </period>
    </context>
    <context id="iba32ab72bc504f5aa957934968aca8ec_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:March2021SecondaryOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="idaa133e6f19a48fc9f9467a9a20c4003_D20210617-20210617">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">whd:CwUnitHoldersOtherThanCactusIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">whd:CactusLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-06-17</startDate>
            <endDate>2021-06-17</endDate>
        </period>
    </context>
    <context id="ib5ea049b5355442d8f9b19d41be69de2_D20210617-20210617">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">whd:CwUnitHoldersOtherThanCactusIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">whd:CactusLLCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-06-17</startDate>
            <endDate>2021-06-17</endDate>
        </period>
    </context>
    <context id="ida99bf729d894c52b703fd90769139b8_D20210913-20210913">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">whd:CwUnitHoldersOtherThanCactusIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">whd:CactusLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-09-13</startDate>
            <endDate>2021-09-13</endDate>
        </period>
    </context>
    <context id="i7847e568da144172b8b061872067ae9e_D20210913-20210913">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">whd:CwUnitHoldersOtherThanCactusIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">whd:CactusLLCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-09-13</startDate>
            <endDate>2021-09-13</endDate>
        </period>
    </context>
    <context id="i1d3bcc55c50b4a4dafaa9b998ae06093_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:CWUnitHolderRedemptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i3c2a4416be6b406e881ad34d5d0dbfc2_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:CWUnitHolderRedemptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ia603a272daf743a69fd8fccf64370b29_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">whd:CWUnitHolderRedemptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="ic5b81607b24d4ea9acd539eb718c9eaf_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">whd:CactusWellheadLlcAndItsSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i5c9bb4481bba4bf68562a2ebcfbe37a5_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">whd:CactusWellheadLlcAndItsSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ib703272b26fd4917b164ff27c926f3fb_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">whd:CactusWellheadLlcAndItsSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i3425588eaae7434aa55cd7494a79abf8_D20191201-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-12-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i740bae6e76104b548cb08c849a16a155_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">whd:ShortTermRentalAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">whd:CompanyOwnedByMemberOfCactusLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i94d63a5435804b64941efbd01227d0ff_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">whd:ShortTermRentalAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">whd:CompanyOwnedByMemberOfCactusLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="iaf09adf623c14baaabc1a6ace1764511_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">whd:ShortTermRentalAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">whd:CompanyOwnedByMemberOfCactusLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i34bfedd0e5b44dc58d8d30e7540bc675_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">whd:ShortTermRentalAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">whd:CompanyOwnedByMemberOfCactusLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i45c7acc364034b369ebdb79354ee69d4_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">whd:ShortTermRentalAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">whd:CompanyOwnedByMemberOfCactusLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i1eb04535283746b2be57dddd8c1e7834_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">whd:DailyRevenueFromRelatedPartiesPersonalUseOfPilotsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">whd:ChiefExecutiveOfficerAndChiefOperatingOfficerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i9cf21e09b63d4c7aa7f07cfac5f799b5_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">whd:DailyRevenueFromRelatedPartiesPersonalUseOfPilotsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">whd:ChiefExecutiveOfficerAndChiefOperatingOfficerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i13c7e246ea234f2ca7832bed006706ec_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">whd:CertainDirectAndIndirectHoldersOfCWUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ieb53504f721c40aa9265ae1a0019e21a_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">whd:CertainDirectAndIndirectHoldersOfCWUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0632bf93859c4dd7aa4264973409c72a_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">whd:CertainDirectAndIndirectHoldersOfCWUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i5cdc0799ba504bfd8848d6a0e19bc1e7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i3fad4f8c53ea4c0692218b5e9addf629_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="iccf6939ba2fd40a08f8cef82b8be77da_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001699136</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <dei:EntityCentralIndexKey
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN180L2ZyYWc6NDM3N2ZmOWZkMjg3NGZmZWFhYjZjNzM1OWRkODk5Y2MvdGFibGU6MDIwMTAzMmE4YjMyNDQwNWI3NWE0ZTljNjFiNTY3NTgvdGFibGVyYW5nZTowMjAxMDMyYThiMzI0NDA1Yjc1YTRlOWM2MWI1Njc1OF8yLTEtMS0xLTE3Mjg1_813183b4-9eaf-48b1-9bbe-7e9f5f785e72">0001699136</dei:EntityCentralIndexKey>
    <dei:DocumentFiscalYearFocus
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN180L2ZyYWc6NDM3N2ZmOWZkMjg3NGZmZWFhYjZjNzM1OWRkODk5Y2MvdGFibGU6MDIwMTAzMmE4YjMyNDQwNWI3NWE0ZTljNjFiNTY3NTgvdGFibGVyYW5nZTowMjAxMDMyYThiMzI0NDA1Yjc1YTRlOWM2MWI1Njc1OF8zLTEtMS0xLTE3Mjg1_be29541c-605e-408c-9685-9babcbbdf096">2021</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN180L2ZyYWc6NDM3N2ZmOWZkMjg3NGZmZWFhYjZjNzM1OWRkODk5Y2MvdGFibGU6MDIwMTAzMmE4YjMyNDQwNWI3NWE0ZTljNjFiNTY3NTgvdGFibGVyYW5nZTowMjAxMDMyYThiMzI0NDA1Yjc1YTRlOWM2MWI1Njc1OF80LTEtMS0xLTE3Mjg1_caa2d5c5-d252-414d-a558-955de73d4493">FY</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN180L2ZyYWc6NDM3N2ZmOWZkMjg3NGZmZWFhYjZjNzM1OWRkODk5Y2MvdGFibGU6MDIwMTAzMmE4YjMyNDQwNWI3NWE0ZTljNjFiNTY3NTgvdGFibGVyYW5nZTowMjAxMDMyYThiMzI0NDA1Yjc1YTRlOWM2MWI1Njc1OF81LTEtMS0xLTE3Mjg1_272d08f9-68f0-4dff-9355-9ea9de83f735">false</dei:AmendmentFlag>
    <whd:LesseeOperatingLeaseTermOfContractPotentialExtensionPeriod
      contextRef="ief86a319de7f44bc9402f27a7996ae28_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIzNg_84ea8517-a8a2-4093-b043-e5b69b2e5bf9">P1Y</whd:LesseeOperatingLeaseTermOfContractPotentialExtensionPeriod>
    <whd:LessorOperatingLeaseRentalPeriod
      contextRef="ief86a319de7f44bc9402f27a7996ae28_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzE4NDk_98348065-1114-4c63-8335-199b70a86b36">P1M</whd:LessorOperatingLeaseRentalPeriod>
    <dei:DocumentType
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDE2_68dd2105-d14c-4e58-8622-f12a50c63f1a">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDE3_2cf9568b-c377-4a53-bc8f-3722e08b9ae8">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8yMTg_e97007ab-78d2-457f-91b1-09573094aca1">2021-12-31</dei:DocumentPeriodEndDate>
    <dei:CurrentFiscalYearEndDate
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8yMTg_61936384-1b40-4aba-add6-fd0ebcf5f6cc">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentTransitionReport
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDIw_0c1136b2-baa2-42e1-b23f-b99f7f28f5bf">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDIz_9a814dd6-ef65-4d73-af06-bbfc89fe6f97">001-38390</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDIx_62cabb76-09c4-4cf8-9189-53c54353b895">Cactus,&#160;Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6ZGRhYTlhYjZkMDBhNGU3MTkwNjBiNTA3YTc1YWYyYjcvdGFibGVyYW5nZTpkZGFhOWFiNmQwMGE0ZTcxOTA2MGI1MDdhNzVhZjJiN18wLTAtMS0xLTE3Mjg1_5b6be4e0-6f72-43c3-adb2-5c4ad92c054c">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6ZGRhYTlhYjZkMDBhNGU3MTkwNjBiNTA3YTc1YWYyYjcvdGFibGVyYW5nZTpkZGFhOWFiNmQwMGE0ZTcxOTA2MGI1MDdhNzVhZjJiN18wLTEtMS0xLTE3Mjg1_4ac950d1-078f-4422-881d-7dbd2e7af50d">35-2586106</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6ZGRhYTlhYjZkMDBhNGU3MTkwNjBiNTA3YTc1YWYyYjcvdGFibGVyYW5nZTpkZGFhOWFiNmQwMGE0ZTcxOTA2MGI1MDdhNzVhZjJiN18zLTAtMS0xLTE3Mjg1L3RleHRyZWdpb246MmI1ZmU4NDllZGM0NDViZGJlNTE4NmU2M2FiMTI5MDFfNA_9e5950ad-c93c-4881-9c0f-0e1eb54fa720">920 Memorial City Way</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6ZGRhYTlhYjZkMDBhNGU3MTkwNjBiNTA3YTc1YWYyYjcvdGFibGVyYW5nZTpkZGFhOWFiNmQwMGE0ZTcxOTA2MGI1MDdhNzVhZjJiN18zLTAtMS0xLTE3Mjg1L3RleHRyZWdpb246MmI1ZmU4NDllZGM0NDViZGJlNTE4NmU2M2FiMTI5MDFfOA_78e33b3a-8ea2-4469-a273-373d8c526ba4">Suite 300</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6ZGRhYTlhYjZkMDBhNGU3MTkwNjBiNTA3YTc1YWYyYjcvdGFibGVyYW5nZTpkZGFhOWFiNmQwMGE0ZTcxOTA2MGI1MDdhNzVhZjJiN18zLTAtMS0xLTE3Mjg1L3RleHRyZWdpb246MmI1ZmU4NDllZGM0NDViZGJlNTE4NmU2M2FiMTI5MDFfMTE_7586752e-6934-4b70-afa1-8d6178ca605a">Houston</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6ZGRhYTlhYjZkMDBhNGU3MTkwNjBiNTA3YTc1YWYyYjcvdGFibGVyYW5nZTpkZGFhOWFiNmQwMGE0ZTcxOTA2MGI1MDdhNzVhZjJiN18zLTAtMS0xLTE3Mjg1L3RleHRyZWdpb246MmI1ZmU4NDllZGM0NDViZGJlNTE4NmU2M2FiMTI5MDFfMTU_782cac53-9d24-4e0a-91df-0fc0120072b8">TX</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6ZGRhYTlhYjZkMDBhNGU3MTkwNjBiNTA3YTc1YWYyYjcvdGFibGVyYW5nZTpkZGFhOWFiNmQwMGE0ZTcxOTA2MGI1MDdhNzVhZjJiN18zLTEtMS0xLTE3Mjg1_0c7953f8-5830-4ba5-9562-f6f4b52e74f5">77024</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV80Njk_9e4a4ce2-3e9b-4820-bbeb-08465a5b4af3">713</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDI3_5efabb73-91a1-4efc-a6fb-396e746c7a12">626-8800</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6MGVlN2RiOTBkYjAxNDE0YjkwN2Q2MDNlNjc1MjhjZTYvdGFibGVyYW5nZTowZWU3ZGI5MGRiMDE0MTRiOTA3ZDYwM2U2NzUyOGNlNl8xLTAtMS0xLTE3Mjg1_af834528-20c6-4ff4-a8e5-3df2ca9fbdee">Class A Common Stock, par value $0.01</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6MGVlN2RiOTBkYjAxNDE0YjkwN2Q2MDNlNjc1MjhjZTYvdGFibGVyYW5nZTowZWU3ZGI5MGRiMDE0MTRiOTA3ZDYwM2U2NzUyOGNlNl8xLTItMS0xLTE3Mjg1_0893593e-32cd-4f82-bb5e-0e70ac82616c">WHD</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6MGVlN2RiOTBkYjAxNDE0YjkwN2Q2MDNlNjc1MjhjZTYvdGFibGVyYW5nZTowZWU3ZGI5MGRiMDE0MTRiOTA3ZDYwM2U2NzUyOGNlNl8xLTQtMS0xLTE3Mjg1_2c6b84fc-9e48-45fb-9a74-a8d9fb114b23">NYSE</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDE5_573a77b2-ca45-4923-86b5-94ad5f3be5a3">Yes</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDI0_874ef799-008d-41b4-8c41-61f2a13a90fd">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDI4_7f3e67ab-62b2-4c11-8d6c-3abd1a461503">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDI5_86bb8e9d-f943-4eb9-a388-3b8f1ff51916">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6NjM1MGJlM2NkNjRiNDE5MmFlZGVhZTAwNzJmNWExYjIvdGFibGVyYW5nZTo2MzUwYmUzY2Q2NGI0MTkyYWVkZWFlMDA3MmY1YTFiMl8wLTAtMS0xLTE3Mjg1_c157b862-dbfa-441b-9c8a-7838c7dcdf2e">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6NjM1MGJlM2NkNjRiNDE5MmFlZGVhZTAwNzJmNWExYjIvdGFibGVyYW5nZTo2MzUwYmUzY2Q2NGI0MTkyYWVkZWFlMDA3MmY1YTFiMl8xLTMtMS0xLTE3Mjg1_fcdb267c-e4cc-4db1-a25e-b8f61cf82143">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGFibGU6NjM1MGJlM2NkNjRiNDE5MmFlZGVhZTAwNzJmNWExYjIvdGFibGVyYW5nZTo2MzUwYmUzY2Q2NGI0MTkyYWVkZWFlMDA3MmY1YTFiMl8yLTMtMS0xLTE3Mjg1_d0995d5a-1dc5-4fad-b2d5-b73b398d07ba">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDMw_588d5600-40aa-48e5-aad6-f3d2d55e956a">true</dei:IcfrAuditorAttestationFlag>
    <dei:EntityShellCompany
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8zMDI1_2bab0344-534a-4337-a4a1-a9ce0bbff357">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="i4b9341dd8d72490eb77bf19ea738c41f_I20210630"
      decimals="-8"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8yNzg0_35d756fe-cf45-4813-af29-745b74602266"
      unitRef="usd">2100000000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i836f44c6b5894c8f8724a4657414f252_I20220224"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8yODMy_3c256173-1c1c-40a0-83aa-fbe3c784fb9c"
      unitRef="shares">59035237</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i7f4852af47d34cceaf36e2a51af47b69_I20220224"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8yODk4_d6ec73b1-2552-4b25-b30a-a5e52b8b180b"
      unitRef="shares">16674282</dei:EntityCommonStockSharesOutstanding>
    <dei:DocumentsIncorporatedByReferenceTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xL2ZyYWc6MmYxMWM3MzA0NDA5NDZhOThhY2QwNDliNzFlYjgwYTUvdGV4dHJlZ2lvbjoyZjExYzczMDQ0MDk0NmE5OGFjZDA0OWI3MWViODBhNV8xMDk5NTExNjMwODM3_825784bc-2be1-4ae7-8337-a6bf3e6b7455">None.</dei:DocumentsIncorporatedByReferenceTextBlock>
    <dei:AuditorFirmId
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN180OS9mcmFnOjNjMjhlYWRmODQ5ZjQwZGNiMDkwZmZmYmRiYTdiMTE5L3RhYmxlOjU3OTY0MTJkNmUwNzQ1MzE4MzRiOTNlODdmZjA4NTU0L3RhYmxlcmFuZ2U6NTc5NjQxMmQ2ZTA3NDUzMTgzNGI5M2U4N2ZmMDg1NTRfMi0wLTEtMS0yOTgxNi90ZXh0cmVnaW9uOmY2MjExNjJmZDE1ZjQzYWM5Y2RkMzBlMGM1MjU0ZDJmXzEwOTk1MTE2Mjc5MTI_fb963f1f-deb4-4a83-9673-230e891d898d">238</dei:AuditorFirmId>
    <dei:AuditorName
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181NS9mcmFnOjkzNmE2Y2Q2NmJjYTQ1NzNiNzE2MTMxY2E0NWMzYTMwL3RleHRyZWdpb246OTM2YTZjZDY2YmNhNDU3M2I3MTYxMzFjYTQ1YzNhMzBfMTA5OTUxMTYzNzg0Nw_75e10c2a-e39a-4b86-825e-ea17a724ac01">PricewaterhouseCoopers LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181NS9mcmFnOjkzNmE2Y2Q2NmJjYTQ1NzNiNzE2MTMxY2E0NWMzYTMwL3RleHRyZWdpb246OTM2YTZjZDY2YmNhNDU3M2I3MTYxMzFjYTQ1YzNhMzBfMTA5OTUxMTYzNzg0OQ_7e78731d-b319-43fc-a0ae-93b0d1656b6f">Houston, Texas</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNS0xLTEtMS0xNzI4NQ_d79457d8-1585-4b74-bb64-71d7624e240c"
      unitRef="usd">301669000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNS0zLTEtMS0xNzI4NQ_30ba7334-792b-4133-b889-37244201a015"
      unitRef="usd">288659000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNi0wLTEtMS0xNzI4NS90ZXh0cmVnaW9uOmQyYzBkMzdmMDg2YjRlNDU5MTY4MDhiMTcyZGJjYzMxXzQ1_2c40268c-b68f-4810-9bdc-1bb652955f01"
      unitRef="usd">741000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNi0wLTEtMS0xNzI4NS90ZXh0cmVnaW9uOmQyYzBkMzdmMDg2YjRlNDU5MTY4MDhiMTcyZGJjYzMxXzUy_f705b564-3480-4037-9bab-f6da1569b455"
      unitRef="usd">598000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNi0xLTEtMS0xNzI4NQ_daee76a1-6e6f-467c-ba73-0b654fb3cc17"
      unitRef="usd">89205000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNi0zLTEtMS0xNzI4NQ_6042a2fe-81e3-44eb-aa7d-818167137a7c"
      unitRef="usd">44068000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryGross
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNy0xLTEtMS0xNzI4NQ_2eb2d05f-9dbe-486e-8ab7-7748bc52100e"
      unitRef="usd">119817000</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNy0zLTEtMS0xNzI4NQ_26fa548e-48e9-49d9-b3b4-7824cb8a25e9"
      unitRef="usd">87480000</us-gaap:InventoryGross>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfOC0xLTEtMS0xNzI4NQ_3a872dcc-ddcc-4244-baa0-1ba6c2b095e1"
      unitRef="usd">7794000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfOC0zLTEtMS0xNzI4NQ_54fe51db-85eb-42f1-bc16-865097cf815a"
      unitRef="usd">4935000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfOS0xLTEtMS0xNzI4NQ_5a6536ec-c9ba-4693-a8f3-e17efccb7778"
      unitRef="usd">518485000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfOS0zLTEtMS0xNzI4NQ_f30d247c-afc9-45fa-8348-608f68a81ca5"
      unitRef="usd">425142000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTEtMS0xLTEtMTcyODU_ae62e3cc-c266-45a0-9a2b-4fd2ecfae3e8"
      unitRef="usd">129117000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTEtMy0xLTEtMTcyODU_993c7e1d-5048-4923-b4a0-ed88314f8f48"
      unitRef="usd">142825000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTItMS0xLTEtMTcyODU_4ac252bf-9c89-4eb2-b6c0-ce0e72697592"
      unitRef="usd">22538000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTItMy0xLTEtMTcyODU_1d3188f5-dc0f-42d6-9e17-97441e07f601"
      unitRef="usd">21994000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTMtMS0xLTEtMTcyODU_f7c6327f-3384-4187-a8c1-e903b2d1ff0e"
      unitRef="usd">7824000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTMtMy0xLTEtMTcyODU_968d5b25-89dd-40a7-a2ce-962490637c46"
      unitRef="usd">7824000</us-gaap:Goodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTQtMS0xLTEtMTcyODU_902901b8-3a12-4b3c-96b2-59cfbde0563a"
      unitRef="usd">303074000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTQtMy0xLTEtMTcyODU_5fd34549-5789-4fac-9fec-be4c9c9e89b4"
      unitRef="usd">216603000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTUtMS0xLTEtMTcyODU_8c5be651-bd2a-4ede-afb6-631b9680f92b"
      unitRef="usd">1040000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTUtMy0xLTEtMTcyODU_0b3b275c-10fd-4756-8250-0c0507db7cf0"
      unitRef="usd">1206000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTYtMS0xLTEtMTcyODU_49ccdcec-98aa-4cce-9cad-49e60fe3c06e"
      unitRef="usd">982078000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTYtMy0xLTEtMTcyODU_388d0cfe-28c3-45cb-9e4b-d6d50d43c9d4"
      unitRef="usd">815594000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTktMS0xLTEtMTcyODU_9acf2a70-e28a-4dc5-abdc-c71fc44170f6"
      unitRef="usd">42818000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMTktMy0xLTEtMTcyODU_b44b2488-4ff4-4b63-93c7-e129e15e80be"
      unitRef="usd">20163000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjAtMS0xLTEtMTcyODU_d332de59-c253-4453-850b-1fff9b54d169"
      unitRef="usd">28240000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjAtMy0xLTEtMTcyODU_2b31bfd4-243a-423a-a026-cff3c9ccb833"
      unitRef="usd">11392000</us-gaap:AccruedLiabilitiesCurrent>
    <whd:TaxReceivableAgreementLiabilityCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjEtMS0xLTEtMTcyODU_09a22da9-1116-4f6b-b64c-5c116f2a8a9e"
      unitRef="usd">11769000</whd:TaxReceivableAgreementLiabilityCurrent>
    <whd:TaxReceivableAgreementLiabilityCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjEtMy0xLTEtMTcyODU_3adae867-00cc-4216-ae47-7f11b7f912e6"
      unitRef="usd">9290000</whd:TaxReceivableAgreementLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjItMS0xLTEtMTcyODU_ce2b2470-07ee-44e3-a740-cd62936eb4ba"
      unitRef="usd">4867000</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjItMy0xLTEtMTcyODU_400bb8ea-a6c1-4322-aa7b-c3c2de653e28"
      unitRef="usd">3823000</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjMtMS0xLTEtMTcyODU_4e37b953-06d8-4ebe-a981-fee188e81a4c"
      unitRef="usd">4880000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjMtMy0xLTEtMTcyODU_b238b576-d2de-430c-bb72-599261e39b50"
      unitRef="usd">4247000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjQtMS0xLTEtMTcyODU_48b1f79d-1616-4502-b70e-f19e19dbeee6"
      unitRef="usd">92574000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjQtMy0xLTEtMTcyODU_a607bca8-2672-470c-a5a1-341b12d66e2a"
      unitRef="usd">48915000</us-gaap:LiabilitiesCurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjYtMS0xLTEtMTcyODU_8991b1e5-78db-4e23-aa96-329a4ffe19e3"
      unitRef="usd">1172000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjYtMy0xLTEtMTcyODU_5073aa60-fe7d-48fb-83dc-1bf7ad7149f4"
      unitRef="usd">786000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <whd:TaxReceivableAgreementLiabilityNonCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjctMS0xLTEtMTcyODU_2af8d78f-cb56-4379-81a5-426e90a66528"
      unitRef="usd">269838000</whd:TaxReceivableAgreementLiabilityNonCurrent>
    <whd:TaxReceivableAgreementLiabilityNonCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjctMy0xLTEtMTcyODU_ac53de5c-bd55-4a30-bcff-e3e2f0f581c0"
      unitRef="usd">195061000</whd:TaxReceivableAgreementLiabilityNonCurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjgtMS0xLTEtMTcyODU_3ef252a7-8f14-4ff0-b2f5-85a11a26acfb"
      unitRef="usd">5811000</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjgtMy0xLTEtMTcyODU_336aa319-5b90-4795-b984-ddc2423169bf"
      unitRef="usd">2240000</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjktMS0xLTEtMTcyODU_5e811fa2-73b6-4d1a-835c-b282f381bcc6"
      unitRef="usd">17650000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMjktMy0xLTEtMTcyODU_897dbd7d-aa81-4243-b650-7f28e088576b"
      unitRef="usd">17822000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:Liabilities
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzAtMS0xLTEtMTcyODU_2f3c47fb-4448-42e9-921d-0e0628561e29"
      unitRef="usd">387045000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzAtMy0xLTEtMTcyODU_1e37537d-7030-49e9-9b05-2377bdf007ba"
      unitRef="usd">264824000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzEtMS0xLTEtMTcyODU_898f4155-9db9-4f44-934c-41277e317b75"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzEtMy0xLTEtMTcyODU_8cd1edf0-e7e5-4477-8eb4-0e58c861e24f"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzMtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjo5MTMzYmQyODExY2Y0ZmFjOGJhYTYwZDU3ZDY0MzRhZl8yMQ_d83c5f88-ca3d-4124-bd5b-c4e0fae42777"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzMtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjo5MTMzYmQyODExY2Y0ZmFjOGJhYTYwZDU3ZDY0MzRhZl8yMQ_df51475e-e75a-4836-a2fc-2dc5ebe8f06f"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzMtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjo5MTMzYmQyODExY2Y0ZmFjOGJhYTYwZDU3ZDY0MzRhZl8zNQ_0e48b25f-69bc-4964-8449-833aa48acf61"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzMtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjo5MTMzYmQyODExY2Y0ZmFjOGJhYTYwZDU3ZDY0MzRhZl8zNQ_d070dc29-b2fc-447e-a34d-9df4065a2609"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzMtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjo5MTMzYmQyODExY2Y0ZmFjOGJhYTYwZDU3ZDY0MzRhZl81Nw_5834be99-3038-4652-a400-b444ab6bb31b"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzMtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjo5MTMzYmQyODExY2Y0ZmFjOGJhYTYwZDU3ZDY0MzRhZl81Nw_722d961f-1a84-42fe-a8c1-35f366a53654"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzMtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjo5MTMzYmQyODExY2Y0ZmFjOGJhYTYwZDU3ZDY0MzRhZl81Nw_92ad5eac-40aa-404e-9f84-d836d0cc472c"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzMtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjo5MTMzYmQyODExY2Y0ZmFjOGJhYTYwZDU3ZDY0MzRhZl81Nw_9e95f762-0260-4a6b-83f3-2f38f8516cc5"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockValue
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzMtMS0xLTEtMTcyODU_c3e31bb4-2113-42a3-9c7e-d67ead14286c"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzMtMy0xLTEtMTcyODU_a1118d99-01db-4a6d-9908-c605b359378f"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i1d083b30948143d68b2984b4f24305e8_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzQtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjpjMDdhNjFjOWU3M2Y0MzA4OTgxY2M0ZGZjNWYzNDliYV8yNg_2d17ef94-092c-4b89-a8f1-f5abc5310c41"
      unitRef="usdPerShare">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="id1c028c2dde14c139792bfef59a5925c_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzQtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjpjMDdhNjFjOWU3M2Y0MzA4OTgxY2M0ZGZjNWYzNDliYV8yNg_99ceb515-9aac-4a05-a3b7-58bd01833314"
      unitRef="usdPerShare">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i1d083b30948143d68b2984b4f24305e8_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzQtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjpjMDdhNjFjOWU3M2Y0MzA4OTgxY2M0ZGZjNWYzNDliYV80MA_0297f304-b211-4e7f-b73f-3e63c1377f01"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="id1c028c2dde14c139792bfef59a5925c_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzQtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjpjMDdhNjFjOWU3M2Y0MzA4OTgxY2M0ZGZjNWYzNDliYV80MA_eb0c2e41-b979-4fb5-b623-8e11dfc4204d"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="id1c028c2dde14c139792bfef59a5925c_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzQtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjpjMDdhNjFjOWU3M2Y0MzA4OTgxY2M0ZGZjNWYzNDliYV82Mg_09984b9c-ad11-4b64-811c-481ca8b09b47"
      unitRef="shares">59035000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="id1c028c2dde14c139792bfef59a5925c_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzQtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjpjMDdhNjFjOWU3M2Y0MzA4OTgxY2M0ZGZjNWYzNDliYV82Mg_c84a1cc5-d529-4c0e-84bc-2888133b077a"
      unitRef="shares">59035000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i1d083b30948143d68b2984b4f24305e8_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzQtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjpjMDdhNjFjOWU3M2Y0MzA4OTgxY2M0ZGZjNWYzNDliYV82OQ_13040fbe-6500-4ad9-a2fe-cd02438abeaf"
      unitRef="shares">47713000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i1d083b30948143d68b2984b4f24305e8_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzQtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjpjMDdhNjFjOWU3M2Y0MzA4OTgxY2M0ZGZjNWYzNDliYV82OQ_3f676d73-d495-488f-b773-4ec2ec84f015"
      unitRef="shares">47713000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="id1c028c2dde14c139792bfef59a5925c_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzQtMS0xLTEtMTcyODU_4f73276b-6f25-4c08-b7eb-a7eed6b2569b"
      unitRef="usd">590000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="i1d083b30948143d68b2984b4f24305e8_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzQtMy0xLTEtMTcyODU_47f392c0-3b67-4db5-97e1-eff788ecc99e"
      unitRef="usd">477000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i3d13687c310a4e81be8123ddd8b5c4d6_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzUtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjozODU1MWZlZGQ1ZjA0YTczOTZkY2YxMGUzZGViNmE5NV8yNg_bb9ea6b1-0ccb-47f1-bcb0-a6cbede40eb3"
      unitRef="usdPerShare">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i5075e470d1fa43029ac043b976a87940_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzUtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjozODU1MWZlZGQ1ZjA0YTczOTZkY2YxMGUzZGViNmE5NV8yNg_d1cdb1ca-428c-42f0-8a45-922f314983c3"
      unitRef="usdPerShare">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i5075e470d1fa43029ac043b976a87940_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzUtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjozODU1MWZlZGQ1ZjA0YTczOTZkY2YxMGUzZGViNmE5NV80MA_322f3d3f-8913-4e04-affc-ec06b8b7a37b"
      unitRef="shares">215000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i3d13687c310a4e81be8123ddd8b5c4d6_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzUtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjozODU1MWZlZGQ1ZjA0YTczOTZkY2YxMGUzZGViNmE5NV80MA_4a108816-0020-4f65-b420-da641a1469c0"
      unitRef="shares">215000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="i5075e470d1fa43029ac043b976a87940_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzUtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjozODU1MWZlZGQ1ZjA0YTczOTZkY2YxMGUzZGViNmE5NV82Mg_0886caf3-0ce2-4655-84e4-3189a37d1a14"
      unitRef="shares">16674000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i5075e470d1fa43029ac043b976a87940_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzUtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjozODU1MWZlZGQ1ZjA0YTczOTZkY2YxMGUzZGViNmE5NV82Mg_d34e72e4-49bc-4ee9-b23d-bd457b55da25"
      unitRef="shares">16674000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i3d13687c310a4e81be8123ddd8b5c4d6_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzUtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjozODU1MWZlZGQ1ZjA0YTczOTZkY2YxMGUzZGViNmE5NV82OQ_2088f9fd-bda6-43e7-a25f-d118745ccaf8"
      unitRef="shares">27655000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i3d13687c310a4e81be8123ddd8b5c4d6_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzUtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjozODU1MWZlZGQ1ZjA0YTczOTZkY2YxMGUzZGViNmE5NV82OQ_76d071ac-20f1-4130-97f6-62af9a78c079"
      unitRef="shares">27655000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="i5075e470d1fa43029ac043b976a87940_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzUtMS0xLTEtMTcyODU_d5e54321-4652-468f-ab80-1b05a7179739"
      unitRef="usd">0</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="i3d13687c310a4e81be8123ddd8b5c4d6_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzUtMy0xLTEtMTcyODU_7cd26622-7b79-4a6d-b8b7-3d135f1d6a12"
      unitRef="usd">0</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzYtMS0xLTEtMTcyODU_ad6e772a-753f-42e9-9439-e9bd8bffc478"
      unitRef="usd">289600000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzYtMy0xLTEtMTcyODU_422e3079-c03d-449b-8ca4-e89487cb5287"
      unitRef="usd">202077000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzctMS0xLTEtMTcyODU_e70aa9aa-eb5d-4099-944e-731e86b8f5b0"
      unitRef="usd">178446000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzctMy0xLTEtMTcyODU_c3ed4596-48fa-4a15-a87d-be914ccdc79f"
      unitRef="usd">150086000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzgtMS0xLTEtMTcyODU_5172b088-dae6-4584-8386-0b2d05922c7e"
      unitRef="usd">8000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzgtMy0xLTEtMTcyODU_b1219f1a-161c-4d08-8192-f4db12d97589"
      unitRef="usd">330000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzktMS0xLTEtMTcyODU_e498c9ad-3792-426a-8f20-7a6ccc606ee0"
      unitRef="usd">468644000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfMzktMy0xLTEtMTcyODU_bf62dca9-bee5-4b3e-988f-17cf98d81db5"
      unitRef="usd">352970000</us-gaap:StockholdersEquity>
    <us-gaap:MinorityInterest
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNDAtMS0xLTEtMTcyODU_68bb6576-eb17-432a-a376-769d8cbd3e7f"
      unitRef="usd">126389000</us-gaap:MinorityInterest>
    <us-gaap:MinorityInterest
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNDAtMy0xLTEtMTcyODU_eff5a224-c590-4a90-a9e5-284fcd181099"
      unitRef="usd">197800000</us-gaap:MinorityInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNDEtMS0xLTEtMTcyODU_a3930071-e9c3-42ad-bdde-b69a9600b477"
      unitRef="usd">595033000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNDEtMy0xLTEtMTcyODU_3d0d8701-ec16-4569-9ca8-18801aa3c351"
      unitRef="usd">550770000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNDItMS0xLTEtMTcyODU_e632f86a-4dea-4283-80d5-0eb164a6e81d"
      unitRef="usd">982078000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN181OC9mcmFnOjYyMmUwNTgzMGUyMjQ2YWM4MDFhNmRiYTNmOTQxMjIyL3RhYmxlOmI0MmJiZWZjYzAzODRhYjA5YWRiZWQwMTkwNWYzMDdhL3RhYmxlcmFuZ2U6YjQyYmJlZmNjMDM4NGFiMDlhZGJlZDAxOTA1ZjMwN2FfNDItMy0xLTEtMTcyODU_40dd6bfa-faa8-42ff-9eb8-bf112018f051"
      unitRef="usd">815594000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iaf59edf0aeab4907b4c4adfc8707e847_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNC0xLTEtMS0xNzI4NQ_ef68ee34-6399-4f8b-b77a-9167bc671d11"
      unitRef="usd">280907000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i08abb4da138a45058bd94bbb14bb4ff8_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNC0zLTEtMS0xNzI4NQ_de9e4703-355c-4e35-be20-76eab12d147d"
      unitRef="usd">206801000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6186e198c38043f1a79e1c8000936cd0_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNC01LTEtMS0xNzI4NQ_c5c52687-daeb-495c-bd37-9c52c224cb97"
      unitRef="usd">357087000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i3415c6e4c0dc48e1bea8204206fbf3a6_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNS0xLTEtMS0xNzI4NQ_bb5fb38a-a418-4045-8bec-96d9b479d6c5"
      unitRef="usd">61629000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7a1c40ec9c654ab289acd3e054f8f80a_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNS0zLTEtMS0xNzI4NQ_71a3c01f-8271-4c2f-bd84-073e7b3e39ae"
      unitRef="usd">66169000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i3c9ff75b50894a56941a8efc6382a7c9_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNS01LTEtMS0xNzI4NQ_169ea030-3e2e-412b-9d14-495ba03d6bff"
      unitRef="usd">141816000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2f020b22fb354ab1ba391e731adb340c_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNi0xLTEtMS0xNzI4NQ_178a9570-b137-4fd2-b79c-e8f30d57f53d"
      unitRef="usd">96053000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7eb3e7d9088d46ea97fe7a98c0c73c3a_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNi0zLTEtMS0xNzI4NQ_4208e04b-44c2-4342-99ed-b93de3004ae5"
      unitRef="usd">75596000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ifc05c9b2701845deb1fc5881c4cb0e62_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNi01LTEtMS0xNzI4NQ_65e089d7-ddb5-4c43-a730-96350603169a"
      unitRef="usd">129511000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNy0xLTEtMS0xNzI4NQ_97706a74-2b87-4f29-82b7-e7f924518c13"
      unitRef="usd">438589000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNy0zLTEtMS0xNzI4NQ_5048274d-8ed5-4184-a320-c00c90aeb403"
      unitRef="usd">348566000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfNy01LTEtMS0xNzI4NQ_56d9a931-6463-4cb1-9555-775f5ddf7a50"
      unitRef="usd">628414000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="iaf59edf0aeab4907b4c4adfc8707e847_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfOS0xLTEtMS0xNzI4NQ_269f5cd4-a6c1-46ae-8710-97a3c808621b"
      unitRef="usd">189083000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i08abb4da138a45058bd94bbb14bb4ff8_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfOS0zLTEtMS0xNzI4NQ_be5aebc5-31e8-4120-ae2a-3963abb72dd3"
      unitRef="usd">131728000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i6186e198c38043f1a79e1c8000936cd0_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfOS01LTEtMS0xNzI4NQ_670268db-b3a7-487a-a782-40902ead99a4"
      unitRef="usd">220615000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i3415c6e4c0dc48e1bea8204206fbf3a6_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTAtMS0xLTEtMTcyODU_707db634-faca-4b9d-bf26-61da801bccea"
      unitRef="usd">54377000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i7a1c40ec9c654ab289acd3e054f8f80a_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTAtMy0xLTEtMTcyODU_609b9ffe-ebb5-4537-b774-d86c4ce584f2"
      unitRef="usd">49077000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i3c9ff75b50894a56941a8efc6382a7c9_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTAtNS0xLTEtMTcyODU_8f9abe67-cbad-4d5e-8b92-3783ab6c656d"
      unitRef="usd">69829000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i2f020b22fb354ab1ba391e731adb340c_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTEtMS0xLTEtMTcyODU_3d77d7ba-8372-4bb6-8b00-4322a8930e29"
      unitRef="usd">73681000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i7eb3e7d9088d46ea97fe7a98c0c73c3a_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTEtMy0xLTEtMTcyODU_0e8a1e22-2474-49f1-8fe5-930a958ad131"
      unitRef="usd">56143000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="ifc05c9b2701845deb1fc5881c4cb0e62_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTEtNS0xLTEtMTcyODU_6ee61b06-0d1a-44cd-86a2-95453db36089"
      unitRef="usd">103163000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTItMS0xLTEtMTcyODU_be3887ae-f8d2-4d4f-8eca-2e9e358c8557"
      unitRef="usd">46021000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTItMy0xLTEtMTcyODU_939b259b-9793-4973-a953-f83f08f487cc"
      unitRef="usd">39715000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTItNS0xLTEtMTcyODU_06316a3f-0521-421a-bf17-4aeb5039d0a2"
      unitRef="usd">51657000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SeveranceCosts1
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTMtMS0xLTEtMTcyODU_c39b5277-af9b-496b-8afa-f4c1224b5195"
      unitRef="usd">0</us-gaap:SeveranceCosts1>
    <us-gaap:SeveranceCosts1
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTMtMy0xLTEtMTcyODU_ec5806a7-b210-44de-8e80-ad845bae5f04"
      unitRef="usd">1864000</us-gaap:SeveranceCosts1>
    <us-gaap:SeveranceCosts1
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTMtNS0xLTEtMTcyODU_cb1bbb1e-25a1-4834-9490-781e055e447f"
      unitRef="usd">0</us-gaap:SeveranceCosts1>
    <us-gaap:OperatingExpenses
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTQtMS0xLTEtMTcyODU_f6d00123-49aa-4932-ae4b-94db3aeb3f8a"
      unitRef="usd">363162000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTQtMy0xLTEtMTcyODU_c1db2264-9605-489f-b3b2-1fbfa012b859"
      unitRef="usd">278527000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTQtNS0xLTEtMTcyODU_ad80ea79-cb10-4fb8-bcce-f2771156be72"
      unitRef="usd">445264000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTUtMS0xLTEtMTcyODU_fcbf1429-3056-4f4d-a6fa-68cac854f3ba"
      unitRef="usd">75427000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTUtMy0xLTEtMTcyODU_39ee6a6d-e440-4f20-8087-e6574d7517a7"
      unitRef="usd">70039000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTUtNS0xLTEtMTcyODU_27791b0c-286b-4b79-bc49-bc42e030af75"
      unitRef="usd">183150000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestIncomeExpenseNonoperatingNet
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTctMS0xLTEtMTcyODU_7a430948-d92a-456a-92e5-129c83f5b6ea"
      unitRef="usd">-774000</us-gaap:InterestIncomeExpenseNonoperatingNet>
    <us-gaap:InterestIncomeExpenseNonoperatingNet
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTctMy0xLTEtMTcyODU_d0aeb769-0667-4a7b-9444-debca7946a7c"
      unitRef="usd">701000</us-gaap:InterestIncomeExpenseNonoperatingNet>
    <us-gaap:InterestIncomeExpenseNonoperatingNet
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTctNS0xLTEtMTcyODU_5cd17b9f-4420-44e0-aec8-7b81b1d40571"
      unitRef="usd">879000</us-gaap:InterestIncomeExpenseNonoperatingNet>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTgtMS0xLTEtMTcyODU_b0979cc7-10dc-492a-95e2-6b56057c0cb2"
      unitRef="usd">492000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTgtMy0xLTEtMTcyODU_0eb372b6-6012-4ccc-8479-05ccc76e369a"
      unitRef="usd">-555000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTgtNS0xLTEtMTcyODU_023e3fed-1de1-4ae2-bf1b-99501c37f546"
      unitRef="usd">4294000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTktMS0xLTEtMTcyODU_8151ec7f-766e-4721-89fb-1ed4efd8af54"
      unitRef="usd">75145000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTktMy0xLTEtMTcyODU_d52148bd-4f84-4ce3-a2e7-86171ee91c16"
      unitRef="usd">70185000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMTktNS0xLTEtMTcyODU_32abc079-a248-4a08-9b4a-e4262ab3de04"
      unitRef="usd">188323000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjAtMS0xLTEtMTcyODU_c5a06021-8495-4c67-85d7-ab4134166995"
      unitRef="usd">7675000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjAtMy0xLTEtMTcyODU_0acfc5a0-f20e-412f-8373-92870b1da0d3"
      unitRef="usd">10970000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjAtNS0xLTEtMTcyODU_f26411f7-e113-4ad8-81f0-06f94ae5b742"
      unitRef="usd">32020000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ProfitLoss
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjEtMS0xLTEtMTcyODU_4e7a313c-ae01-48a1-a020-b83ee2cefa4d"
      unitRef="usd">67470000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjEtMy0xLTEtMTcyODU_20019afb-f3a6-485f-bc63-c2daa9324437"
      unitRef="usd">59215000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjEtMy0xLTEtMTcyODU_62d67839-3b26-4cc6-8b85-1e174092c8d2"
      unitRef="usd">59215000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjEtNS0xLTEtMTcyODU_112f1fde-7b02-4f38-a546-6017040d9032"
      unitRef="usd">156303000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjEtNS0xLTEtMTcyODU_d33ce177-0ec5-4451-90f7-fb4ee8ad14ab"
      unitRef="usd">156303000</us-gaap:ProfitLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjMtMS0xLTEtMTcyODU_c7c439ff-8764-4c1a-8c04-7e8f8505c6a5"
      unitRef="usd">17877000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjMtMy0xLTEtMTcyODU_5199e617-8c69-4c12-9f3b-e61b4b1c72c3"
      unitRef="usd">24769000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjMtNS0xLTEtMTcyODU_0394aa8b-d095-432b-b0cd-732fcf3ef611"
      unitRef="usd">70691000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjQtMS0xLTEtMTcyODU_62ba2a12-e4d4-49f5-9b25-b59f56c05e30"
      unitRef="usd">49593000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjQtMy0xLTEtMTcyODU_1306a302-32f8-45e1-ac77-bc541462a536"
      unitRef="usd">34446000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjQtNS0xLTEtMTcyODU_7a953834-d9be-4ab9-bb98-c65d4d87e36a"
      unitRef="usd">85612000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjYtMS0xLTEtMTcyODU_557703b9-e8bf-4d44-9545-496b4f9ebf9f"
      unitRef="usdPerShare">0.90</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjYtMy0xLTEtMTcyODU_10e14c8e-33b9-4d43-9154-2d46fd9c809c"
      unitRef="usdPerShare">0.73</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjYtNS0xLTEtMTcyODU_8ab1099a-95d1-4bd3-a6b2-796a8e79bf3d"
      unitRef="usdPerShare">1.90</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjctMS0xLTEtMTcyODU_1cd80651-1205-47ae-bd1b-614116105699"
      unitRef="usdPerShare">0.83</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjctMy0xLTEtMTcyODU_a9bbdf00-be5f-418d-8bc0-bec95cf22648"
      unitRef="usdPerShare">0.72</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjctNS0xLTEtMTcyODU_f5328e1e-a90d-4538-8e64-6e34947a63f7"
      unitRef="usdPerShare">1.88</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjktMS0xLTEtMTcyODU_3ede5da1-023f-4c05-800c-c14a6441446e"
      unitRef="shares">55398000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjktMy0xLTEtMTcyODU_c372e6f1-9640-47f5-a2ac-2fcd9591e481"
      unitRef="shares">47457000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMjktNS0xLTEtMTcyODU_46025434-27c7-4bc1-8d81-938654da1d27"
      unitRef="shares">44983000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMzAtMS0xLTEtMTcyODU_6fe794e5-8971-4589-bf9f-10b178e411a4"
      unitRef="shares">76107000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMzAtMy0xLTEtMTcyODU_7e08dd21-f581-4bc1-a350-24bbf993553b"
      unitRef="shares">75495000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182MS9mcmFnOjA1ZWM4NGE4ZWFhOTRkYjI5ZWNhNWNlNDEyMDA4NjhkL3RhYmxlOmIzOTIzNjM0YzA5ZjQ5OWFhMzRmZDRmMzE4ZTAzMDA1L3RhYmxlcmFuZ2U6YjM5MjM2MzRjMDlmNDk5YWEzNGZkNGYzMThlMDMwMDVfMzAtNS0xLTEtMTcyODU_ec624e5e-5936-4e12-b8c6-48b6b7a49ca2"
      unitRef="shares">75353000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:ProfitLoss
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfMy0xLTEtMS0xNzI4NQ_4e7a313c-ae01-48a1-a020-b83ee2cefa4d"
      unitRef="usd">67470000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfMy0zLTEtMS0xNzI4NQ_20019afb-f3a6-485f-bc63-c2daa9324437"
      unitRef="usd">59215000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfMy0zLTEtMS0xNzI4NQ_62d67839-3b26-4cc6-8b85-1e174092c8d2"
      unitRef="usd">59215000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfMy01LTEtMS0xNzI4NQ_112f1fde-7b02-4f38-a546-6017040d9032"
      unitRef="usd">156303000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfMy01LTEtMS0xNzI4NQ_d33ce177-0ec5-4451-90f7-fb4ee8ad14ab"
      unitRef="usd">156303000</us-gaap:ProfitLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfNC0xLTEtMS0xNzI4NQ_90baa637-ff2a-4f08-9818-a8fb29f34174"
      unitRef="usd">-567000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfNC0zLTEtMS0xNzI4NQ_480ab19b-1a52-4988-bd7e-a0ef686b6f46"
      unitRef="usd">1375000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfNC01LTEtMS0xNzI4NQ_b49071fd-7d22-44e7-a87e-8e3cee780545"
      unitRef="usd">368000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfNS0xLTEtMS0xNzI4NQ_e42b60cc-a9fa-4ebb-a2b6-64fdbbbd17a7"
      unitRef="usd">66903000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfNS0zLTEtMS0xNzI4NQ_69e118fa-2308-4b85-b3e7-9b6ea6b583bc"
      unitRef="usd">60590000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfNS01LTEtMS0xNzI4NQ_1bda8fee-3056-439f-9b31-09223afe99dd"
      unitRef="usd">156671000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfNy0xLTEtMS0xNzI4NQ_b1dc40ba-b414-4adb-bc03-9f8c642debad"
      unitRef="usd">17632000</us-gaap:ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfNy0zLTEtMS0xNzI4NQ_8f164f97-43c5-457d-a9b7-599848e8a568"
      unitRef="usd">25362000</us-gaap:ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfNy01LTEtMS0xNzI4NQ_2c601a54-6522-4848-bd82-ea72fa2a2b98"
      unitRef="usd">70581000</us-gaap:ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfOC0xLTEtMS0xNzI4NQ_cd1a3360-e975-406d-b0a5-96c5be1b53fd"
      unitRef="usd">49271000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfOC0zLTEtMS0xNzI4NQ_a79f8a40-8279-4b6b-9acd-bd3e20c4e3fa"
      unitRef="usd">35228000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182NC9mcmFnOmRiYjEwNmE5MWE2NTRiZDBhZDExNTI4YzFmMmQwMjcyL3RhYmxlOjRkMDYwMzc5NDMzNzQ1NDhiNjYyMTA5MzczMDRhODEzL3RhYmxlcmFuZ2U6NGQwNjAzNzk0MzM3NDU0OGI2NjIxMDkzNzMwNGE4MTNfOC01LTEtMS0xNzI4NQ_afbbbfeb-01f0-452e-9ee2-b1b12965a6f4"
      unitRef="usd">86090000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:SharesOutstanding
      contextRef="i4a408a622ac847beb22742b201b94a35_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMi0zLTEtMS0xNzI4NQ_a3c16d1c-81b1-42a5-9aa8-3bb1069e6c14"
      unitRef="shares">37654000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i4a408a622ac847beb22742b201b94a35_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMi01LTEtMS0xNzI4NQ_5a894550-f6d9-4670-bc69-1032c5653246"
      unitRef="usd">377000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="i74cfd7ef04394ce484cc443ecd9e2bdc_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMi03LTEtMS0xNzI4NQ_d4d2f4ac-2bbf-4ec3-8440-8f6a5f3890db"
      unitRef="shares">37236000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i74cfd7ef04394ce484cc443ecd9e2bdc_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMi05LTEtMS0xNzI4NQ_dc0c4a8e-71e7-445e-9285-f5aab5a563bd"
      unitRef="usd">0</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="if58e366ab90e4028a731977b88107ae3_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMi0xMS0xLTEtMTcyODU_294fe36e-1a51-46a4-a683-3863bd8a313d"
      unitRef="usd">126418000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="iee0451f8b36844fda1c45b5db32a3a26_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMi0xMy0xLTEtMTcyODU_40153c5f-9df9-49a9-8f78-e90ca46b2a56"
      unitRef="usd">51683000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i0227207df0bc4a4b8546177030658826_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMi0xNS0xLTEtMTcyODU_a81ecaa0-d22e-466f-b25e-f4732d4fa5c3"
      unitRef="usd">-820000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i0710bf48158e4438a6ba80a3019fe16d_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMi0xNy0xLTEtMTcyODU_4255047a-bceb-4884-aad9-60c8d38f1e01"
      unitRef="usd">184670000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ibab9af5359784af9b4f85cfd55a31cab_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMi0xOS0xLTEtMTcyODU_42eabd0b-3b10-4dbb-8252-e61a18f2f5a9"
      unitRef="usd">362328000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:PriorPeriodReclassificationAdjustment
      contextRef="iefc4f7e9039f48fbb2de00a5490ac427_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMy0xMS0xLTEtMTcyODU_9e44e077-19e0-4fef-9ca3-2f50924e3212"
      unitRef="usd">10424000</us-gaap:PriorPeriodReclassificationAdjustment>
    <us-gaap:PriorPeriodReclassificationAdjustment
      contextRef="i608e76cc51da4991b3dee889db7a5caa_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMy0xNS0xLTEtMTcyODU_f3ec446c-7d03-462d-a89e-4e64a373af30"
      unitRef="usd">409000</us-gaap:PriorPeriodReclassificationAdjustment>
    <us-gaap:PriorPeriodReclassificationAdjustment
      contextRef="id3eeeca0cd8f4323bfa42ea262b43537_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMy0xNy0xLTEtMTcyODU_f1e7cbbd-177e-4b60-9b7f-7543f6b72d36"
      unitRef="usd">-11339000</us-gaap:PriorPeriodReclassificationAdjustment>
    <us-gaap:PriorPeriodReclassificationAdjustment
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMy0xOS0xLTEtMTcyODU_5057a965-bc9d-42d5-9cb2-aee66ff82632"
      unitRef="usd">-506000</us-gaap:PriorPeriodReclassificationAdjustment>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="id3eeeca0cd8f4323bfa42ea262b43537_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNC0xNy0xLTEtMTcyODU_45130f85-3d28-4381-86a1-fd0e2fb384f0"
      unitRef="usd">8392000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNC0xOS0xLTEtMTcyODU_38861370-4db5-4466-971a-c6533fe1931d"
      unitRef="usd">8392000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="if86df42f87db4dc2b1a6e3d1d917c77b_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNS0zLTEtMS0xNzI4NQ_49584d45-1495-4f92-a0c7-0f65e02a2e41"
      unitRef="shares">9278000</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="if86df42f87db4dc2b1a6e3d1d917c77b_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNS01LTEtMS0xNzI4NQ_a0c984f6-91dd-41ac-a4ec-d5bca5e5a73e"
      unitRef="usd">93000</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="ica0b6179c8b04c9d8824ec6846f71966_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNS03LTEtMS0xNzI4NQ_c17990c7-dca5-41b3-8306-6483e687df4d"
      unitRef="shares">-9278000</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="iefc4f7e9039f48fbb2de00a5490ac427_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNS0xMS0xLTEtMTcyODU_58b12821-1acc-4229-ae3f-4d7d87fd4087"
      unitRef="usd">48635000</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="i608e76cc51da4991b3dee889db7a5caa_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNS0xNS0xLTEtMTcyODU_799d9bc2-45e9-495b-afc0-64be59a0d8eb"
      unitRef="usd">-59000</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="id3eeeca0cd8f4323bfa42ea262b43537_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNS0xNy0xLTEtMTcyODU_8579227b-5a37-4549-afe4-e27ab3e88302"
      unitRef="usd">-48669000</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNS0xOS0xLTEtMTcyODU_38e9276f-fc13-4466-86f7-16fb2aaad789"
      unitRef="usd">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset
      contextRef="iefc4f7e9039f48fbb2de00a5490ac427_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNi0xMS0xLTEtMTcyODU_56669723-4fcd-404d-b9ea-676fba957bbf"
      unitRef="usd">5499000</whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset>
    <whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNi0xOS0xLTEtMTcyODU_1db956d1-a69b-401d-939d-3255c222f1ab"
      unitRef="usd">5499000</whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="if86df42f87db4dc2b1a6e3d1d917c77b_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNy0zLTEtMS0xNzI4NQ_0d6d095a-cc4e-40b3-a2d4-0b0f3a7cf552"
      unitRef="shares">227000</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="if86df42f87db4dc2b1a6e3d1d917c77b_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNy01LTEtMS0xNzI4NQ_2e3a7823-850d-488d-a951-84ad03c9cb41"
      unitRef="usd">2000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="iefc4f7e9039f48fbb2de00a5490ac427_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNy0xMS0xLTEtMTcyODU_1e3de38b-e2af-4ae1-b667-b0e0eeecd029"
      unitRef="usd">-791000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="id3eeeca0cd8f4323bfa42ea262b43537_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNy0xNy0xLTEtMTcyODU_98886a85-eb45-4184-9e73-43482e18d72e"
      unitRef="usd">-760000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfNy0xOS0xLTEtMTcyODU_2818b057-7a07-44e0-9c5e-a7fa92c13a8f"
      unitRef="usd">-1549000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:OtherComprehensiveIncomeOtherNetOfTax
      contextRef="i608e76cc51da4991b3dee889db7a5caa_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfOC0xNS0xLTEtMTcyODU_3ef7a705-0692-4eb9-94f2-5af947d55dfd"
      unitRef="usd">18000</us-gaap:OtherComprehensiveIncomeOtherNetOfTax>
    <us-gaap:OtherComprehensiveIncomeOtherNetOfTax
      contextRef="id3eeeca0cd8f4323bfa42ea262b43537_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfOC0xNy0xLTEtMTcyODU_f251905b-1fe9-40c6-9c49-b1916ba356de"
      unitRef="usd">4000</us-gaap:OtherComprehensiveIncomeOtherNetOfTax>
    <us-gaap:OtherComprehensiveIncomeOtherNetOfTax
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfOC0xOS0xLTEtMTcyODU_7db08460-79a2-4bf9-8aee-c7eedf93130d"
      unitRef="usd">22000</us-gaap:OtherComprehensiveIncomeOtherNetOfTax>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
      contextRef="iefc4f7e9039f48fbb2de00a5490ac427_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfOS0xMS0xLTEtMTcyODU_eb1f2393-1eb6-4d62-96f2-5df4a526bf8a"
      unitRef="usd">4271000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
      contextRef="id3eeeca0cd8f4323bfa42ea262b43537_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfOS0xNy0xLTEtMTcyODU_2927e474-e241-4730-9d97-5ae0b02fbaa9"
      unitRef="usd">2724000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfOS0xOS0xLTEtMTcyODU_6eb353ed-500c-402f-a366-cfbc514cff66"
      unitRef="usd">6995000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTAtMC0xLTEtMjA4MDAvdGV4dHJlZ2lvbjpkYjZhNWU3MTdmZTg0N2FkYTdlZjJjMjZmNDZiNTU4Zl82NTk3MDY5NzY2NzA2_289fb717-5b01-4119-b3a5-7e592c8790ef"
      unitRef="usdPerShare">0.09</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCash
      contextRef="i01e6b64832a04de0bf9a76b8deb174e5_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTAtMTMtMS0xLTE3Mjg1_bf147abf-1356-41d9-9d05-d2d6ef6207ab"
      unitRef="usd">4305000</us-gaap:DividendsCash>
    <us-gaap:DividendsCash
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTAtMTktMS0xLTE3Mjg1_ba544fbd-12b6-4b7f-9d1d-421229293702"
      unitRef="usd">4305000</us-gaap:DividendsCash>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i01e6b64832a04de0bf9a76b8deb174e5_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTEtMTMtMS0xLTE3Mjg1_77642c0d-19c9-4306-93b0-27a57f155a66"
      unitRef="usd">85612000</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="id3eeeca0cd8f4323bfa42ea262b43537_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTEtMTctMS0xLTE3Mjg1_bef89857-dde5-4a0c-9b01-7a48a560fe4a"
      unitRef="usd">70691000</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTEtMTktMS0xLTE3Mjg1_a2d2d5b4-e6e4-4c79-bdd7-1a932b3cc8a8"
      unitRef="usd">156303000</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="ia5494a8f924e4c7b82fecdba7f021293_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTItMy0xLTEtMTcyODU_7d378faa-8278-4f4a-8452-a188f805c642"
      unitRef="shares">47159000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ia5494a8f924e4c7b82fecdba7f021293_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTItNS0xLTEtMTcyODU_b2ceefd2-74e1-490f-badd-be772bcba297"
      unitRef="usd">472000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="i999d1800dac54a039df20f69d41777f7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTItNy0xLTEtMTcyODU_2d626449-107c-4e5b-8727-31ae2451b117"
      unitRef="shares">27958000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i999d1800dac54a039df20f69d41777f7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTItOS0xLTEtMTcyODU_9a2054db-d8ae-47d4-891f-0bd4f5262061"
      unitRef="usd">0</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="iba3ae95f479c48fbbe77c5c18ed3e082_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTItMTEtMS0xLTE3Mjg1_8e32fd64-edeb-43d1-8ae9-f2442289e544"
      unitRef="usd">194456000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i2cb618511c554de9aea7b4a0afb28198_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTItMTMtMS0xLTE3Mjg1_c6bab76e-7e82-44bb-841a-34198d1c41f2"
      unitRef="usd">132990000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i2332f598f97344be835510ac910517ff_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTItMTUtMS0xLTE3Mjg1_dc764d43-422e-4bf8-bc5e-b8d3197a2f46"
      unitRef="usd">-452000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ia0ba4bd57e1b4ab88f7543150d44e9ee_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTItMTctMS0xLTE3Mjg1_7cc9c9f3-a718-47f3-8bb7-fe5337652c50"
      unitRef="usd">188929000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ife2d6f3fae2b4e39891dddc47374ddeb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTItMTktMS0xLTE3Mjg1_d03196d6-c4f5-42b1-8553-eaed10fee2ee"
      unitRef="usd">516395000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="i519108f097904187ba2d2e68f522cc6e_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTQtMTctMS0xLTE3Mjg1_e2361a78-a005-4865-8e82-3e251c8291fe"
      unitRef="usd">16304000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTQtMTktMS0xLTE3Mjg1_aa6f6daf-a44e-4a12-a9d4-9b9eb5b36ea5"
      unitRef="usd">16304000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="i495a08b9703a4d89afc5154d3e6737bd_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTUtMy0xLTEtMTcyODU_af9caf38-6296-4025-b1f3-d067ede41cd7"
      unitRef="shares">303000</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="i495a08b9703a4d89afc5154d3e6737bd_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTUtNS0xLTEtMTcyODU_79008d1c-e538-4faf-8e89-f58519252930"
      unitRef="usd">3000</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="i1546ed3a266c4df7a06886687981a508_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTUtNy0xLTEtMTcyODU_242f1d4c-4bd5-4576-bd7f-abba2dd5c58e"
      unitRef="shares">-303000</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="i331cc9696c4f4a90af7229e38df57ee4_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTUtMTEtMS0xLTE3Mjg1_8487b8eb-bd33-4a5b-9701-0517cc537f3c"
      unitRef="usd">2155000</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="i519108f097904187ba2d2e68f522cc6e_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTUtMTctMS0xLTE3Mjg1_f14890df-9e64-4485-aeae-0267f67861f7"
      unitRef="usd">-2158000</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTUtMTktMS0xLTE3Mjg1_da3ead4d-aba9-4b52-8a51-f0caa5f6a541"
      unitRef="usd">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset
      contextRef="i331cc9696c4f4a90af7229e38df57ee4_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTYtMTEtMS0xLTE3Mjg1_f4e8d5e7-f8c6-44e8-b7c7-020208aaeb7d"
      unitRef="usd">284000</whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset>
    <whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTYtMTktMS0xLTE3Mjg1_f9b8962d-c1dd-45ed-82bb-ca019d12df7f"
      unitRef="usd">284000</whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="i495a08b9703a4d89afc5154d3e6737bd_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTctMy0xLTEtMTcyODU_5a4550c4-e8fd-457d-a682-546716ddd94c"
      unitRef="shares">251000</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i495a08b9703a4d89afc5154d3e6737bd_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTctNS0xLTEtMTcyODU_581f4035-1e81-4fc4-9a96-be569329ab14"
      unitRef="usd">2000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i331cc9696c4f4a90af7229e38df57ee4_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTctMTEtMS0xLTE3Mjg1_5adaa63c-a876-4ec7-88dd-a3f27b0449d3"
      unitRef="usd">-238000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i519108f097904187ba2d2e68f522cc6e_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTctMTctMS0xLTE3Mjg1_f0d448db-9706-4d64-a73a-22e7bacaff70"
      unitRef="usd">-1208000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTctMTktMS0xLTE3Mjg1_d631acf8-1e3a-4780-989c-d2b8c1da8efc"
      unitRef="usd">-1444000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:OtherComprehensiveIncomeOtherNetOfTax
      contextRef="i577c374d25604485b03e5c05b0e7bf59_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTgtMTUtMS0xLTE3Mjg1_22bbc187-5fde-475a-a649-f3a6364ce624"
      unitRef="usd">782000</us-gaap:OtherComprehensiveIncomeOtherNetOfTax>
    <us-gaap:OtherComprehensiveIncomeOtherNetOfTax
      contextRef="i519108f097904187ba2d2e68f522cc6e_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTgtMTctMS0xLTE3Mjg1_7189d83f-2dff-499c-976b-f5f1a35aa814"
      unitRef="usd">593000</us-gaap:OtherComprehensiveIncomeOtherNetOfTax>
    <us-gaap:OtherComprehensiveIncomeOtherNetOfTax
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTgtMTktMS0xLTE3Mjg1_52e06863-0937-4b93-b5e3-c5eddc5d678e"
      unitRef="usd">1375000</us-gaap:OtherComprehensiveIncomeOtherNetOfTax>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
      contextRef="i331cc9696c4f4a90af7229e38df57ee4_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTktMTEtMS0xLTE3Mjg1_4a8b9b99-94f6-4ea8-a51f-9035f606d91e"
      unitRef="usd">5420000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
      contextRef="i519108f097904187ba2d2e68f522cc6e_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTktMTctMS0xLTE3Mjg1_7d8dd763-dc7a-4b38-9d24-7f3da52999b0"
      unitRef="usd">3179000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMTktMTktMS0xLTE3Mjg1_c548e7da-c299-4509-9aba-bc6b7ed780d9"
      unitRef="usd">8599000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjAtMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjo3ZjkyOTk4MDU5NTY0ZWMxOTQ5MWY5MWNhZWRjNzQ5NV8yOQ_f03f2c1c-bc0f-454d-8888-db0c52ea482b"
      unitRef="usdPerShare">0.36</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCash
      contextRef="i71228a048d9d4f9a992866b757a598c1_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjAtMTMtMS0xLTE3Mjg1_5802eb3b-0c80-4f7b-8577-f3a20aeba028"
      unitRef="usd">17350000</us-gaap:DividendsCash>
    <us-gaap:DividendsCash
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjAtMTktMS0xLTE3Mjg1_24ef7209-c96a-4f62-815e-7e6a718f275b"
      unitRef="usd">17350000</us-gaap:DividendsCash>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i71228a048d9d4f9a992866b757a598c1_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjEtMTMtMS0xLTE3Mjg1_492d25b7-41cb-4103-a526-39facce395e7"
      unitRef="usd">34446000</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i519108f097904187ba2d2e68f522cc6e_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjEtMTctMS0xLTE3Mjg1_516be370-0efd-4d67-8787-6856f01b0391"
      unitRef="usd">24769000</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjEtMTktMS0xLTE3Mjg1_e64dbe81-f261-47bc-ba92-af2134045c55"
      unitRef="usd">59215000</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="i3441307b58f9416aa18a32f51ad2cabb_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjItMy0xLTEtMTcyODU_342a3fd0-4b88-4826-8499-b56d2cc95167"
      unitRef="shares">47713000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i3441307b58f9416aa18a32f51ad2cabb_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjItNS0xLTEtMTcyODU_2fa1ec10-0b4a-4eab-992f-f9ea834c6a50"
      unitRef="usd">477000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="i994bb508dc1b42049c29df20698a1c20_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjItNy0xLTEtMTcyODU_b65e28e6-9bea-48c3-addb-eb113b5e50cb"
      unitRef="shares">27655000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i994bb508dc1b42049c29df20698a1c20_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjItOS0xLTEtMTcyODU_70aa73a3-da9b-483b-a05f-2b09efa64c83"
      unitRef="usd">0</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i9fdf83f28d1343eb9b6642656e6af664_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjItMTEtMS0xLTE3Mjg1_5b6383f7-e847-4db9-a408-85e3fb21891f"
      unitRef="usd">202077000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i40bf40e559834eb481faccb9559d5217_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjItMTMtMS0xLTE3Mjg1_da946334-11cf-41aa-aa41-58174d96fde0"
      unitRef="usd">150086000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i194da2238b8d4e11a227aed0bb237741_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjItMTUtMS0xLTE3Mjg1_91b3770c-57b4-4213-a23c-6201ebd08956"
      unitRef="usd">330000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ib9717ab85aa64c948473585f57462535_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjItMTctMS0xLTE3Mjg1_3db860ec-a868-49ac-9bd2-42411ef66207"
      unitRef="usd">197800000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjItMTktMS0xLTE3Mjg1_bd525157-6a35-49b8-89c8-471e42c01fc9"
      unitRef="usd">550770000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="i506d0342ca764aa1bde6fbb55fbd7ff1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjMtMTctMS0xLTE3Mjg1_c41594b8-523c-447a-9967-dbc5d57544de"
      unitRef="usd">9742000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjMtMTktMS0xLTE3Mjg1_9cebcefc-499b-46de-b4ab-d9e58cf6e2c8"
      unitRef="usd">9742000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="i7cfc37aa7596438f8332b6adf24a5493_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjQtMy0xLTEtMTcyODU_eac8f44c-2901-406b-970a-462fa63c8b54"
      unitRef="shares">10981000</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="i7cfc37aa7596438f8332b6adf24a5493_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjQtNS0xLTEtMTcyODU_dcaf3429-23e9-4290-92d5-8980139af1ba"
      unitRef="usd">110000</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits
      contextRef="i61208c60b7f249ec989fde6c07411223_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjQtNy0xLTEtMTcyODU_a9f6cea6-2bd1-45cf-b412-0e45a3572456"
      unitRef="shares">-10981000</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="i924ec9ad6f4247748a81d155ed74b996_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjQtMTEtMS0xLTE3Mjg1_a6f220b2-1741-4260-998b-38fa2d3b25bf"
      unitRef="usd">79276000</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="i506d0342ca764aa1bde6fbb55fbd7ff1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjQtMTctMS0xLTE3Mjg1_a094f006-98a9-4373-8d6a-1bc9e55bb8b9"
      unitRef="usd">-79386000</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfUnits
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjQtMTktMS0xLTE3Mjg1_629c624e-e054-4734-a34a-094b84984b82"
      unitRef="usd">0</us-gaap:StockIssuedDuringPeriodValueConversionOfUnits>
    <whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset
      contextRef="i924ec9ad6f4247748a81d155ed74b996_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjUtMTEtMS0xLTE3Mjg1_13f62413-208f-4498-b60c-b88a5241a9ea"
      unitRef="usd">2998000</whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset>
    <whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjUtMTktMS0xLTE3Mjg1_420b29d8-d2e8-44f7-8844-0f3a5f40922c"
      unitRef="usd">2998000</whd:AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="i7cfc37aa7596438f8332b6adf24a5493_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjYtMy0xLTEtMTcyODU_bd1b8334-43da-4b5a-a717-1dd9617046bd"
      unitRef="shares">341000</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i7cfc37aa7596438f8332b6adf24a5493_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjYtNS0xLTEtMTcyODU_6c86fed6-0852-413c-9f30-eb8a4c44e1db"
      unitRef="usd">3000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i924ec9ad6f4247748a81d155ed74b996_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjYtMTEtMS0xLTE3Mjg1_ec8567f9-8694-447b-9ead-24611fe7e114"
      unitRef="usd">-1141000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i506d0342ca764aa1bde6fbb55fbd7ff1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjYtMTctMS0xLTE3Mjg1_7b71fba4-bab6-4bed-96f9-749d786d4780"
      unitRef="usd">-2145000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjYtMTktMS0xLTE3Mjg1_a8e8ce23-8417-4688-b9d7-9051962b7b09"
      unitRef="usd">-3283000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:OtherComprehensiveIncomeOtherNetOfTax
      contextRef="i1fbdbb3fad684189b74bd5f87e420eac_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjctMTUtMS0xLTE3Mjg1_1b787806-6102-4a67-b19b-ce633a958659"
      unitRef="usd">-322000</us-gaap:OtherComprehensiveIncomeOtherNetOfTax>
    <us-gaap:OtherComprehensiveIncomeOtherNetOfTax
      contextRef="i506d0342ca764aa1bde6fbb55fbd7ff1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjctMTctMS0xLTE3Mjg1_b6f461a0-12f6-48c5-9ce7-13af0907330b"
      unitRef="usd">-245000</us-gaap:OtherComprehensiveIncomeOtherNetOfTax>
    <us-gaap:OtherComprehensiveIncomeOtherNetOfTax
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjctMTktMS0xLTE3Mjg1_d21c17e2-5058-49f2-b37c-21dd9b0540aa"
      unitRef="usd">-567000</us-gaap:OtherComprehensiveIncomeOtherNetOfTax>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
      contextRef="i924ec9ad6f4247748a81d155ed74b996_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjgtMTEtMS0xLTE3Mjg1_dbcdb672-4e1e-4e85-a9e3-4e35c6087dd6"
      unitRef="usd">6390000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
      contextRef="i506d0342ca764aa1bde6fbb55fbd7ff1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjgtMTctMS0xLTE3Mjg1_aba9516d-ad25-4b24-99f0-1feff00578f3"
      unitRef="usd">2230000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjgtMTktMS0xLTE3Mjg1_91cbc651-f6cb-479d-9672-ff87b7db35cf"
      unitRef="usd">8620000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjktMC0xLTEtMTcyODUvdGV4dHJlZ2lvbjpiOGYyYzNhYTE3Njg0YWU4YmY1MmI3ZGMyOGY1MjViZF8yOQ_3701079f-8859-4dbb-9341-c1bcbfad0cdc"
      unitRef="usdPerShare">0.38</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCash
      contextRef="i8a2d0ad7682843e491d93122efa54c95_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjktMTMtMS0xLTE3Mjg1_d501e3a5-6437-420b-8582-779a5b4d23bc"
      unitRef="usd">21233000</us-gaap:DividendsCash>
    <us-gaap:DividendsCash
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMjktMTktMS0xLTE3Mjg1_b04367bc-187d-4db5-98fa-966db8c6b32f"
      unitRef="usd">21233000</us-gaap:DividendsCash>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i8a2d0ad7682843e491d93122efa54c95_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzAtMTMtMS0xLTE3Mjg1_37007f62-396f-4f05-9ea0-9e9be3b82434"
      unitRef="usd">49593000</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i506d0342ca764aa1bde6fbb55fbd7ff1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzAtMTctMS0xLTE3Mjg1_abce3352-7098-4199-8d1a-39b2f83d704f"
      unitRef="usd">17877000</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzAtMTktMS0xLTE3Mjg1_b9e8aa2b-206d-4b08-950b-d3d87ddca31d"
      unitRef="usd">67470000</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="i1c41af5bb58f49edbdbb380015382efe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzEtMy0xLTEtMTcyODU_92e4f8b2-d6a3-42f3-85f5-3d611d7c2c39"
      unitRef="shares">59035000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i1c41af5bb58f49edbdbb380015382efe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzEtNS0xLTEtMTcyODU_807b3189-6406-48df-b9d6-5c52790e6f51"
      unitRef="usd">590000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="if247837eecad4354a2dc86db354ef0d5_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzEtNy0xLTEtMTcyODU_0a8133f5-6c12-495d-9df5-373d7d9028ec"
      unitRef="shares">16674000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="if247837eecad4354a2dc86db354ef0d5_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzEtOS0xLTEtMTcyODU_dd831def-5c4a-47a5-930d-1b341c879a14"
      unitRef="usd">0</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ic05f4adb86e64910b1209ea9db7fdcbd_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzEtMTEtMS0xLTE3Mjg1_5fc5296f-f51b-4374-8105-36cb63fe876f"
      unitRef="usd">289600000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i6d52f1dc57ff47cb95ce58fbeb8036dd_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzEtMTMtMS0xLTE3Mjg1_ded067c6-160e-4e7f-89e4-2f672a428a0e"
      unitRef="usd">178446000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i6bef579d99564c9dac7866304d3f1d03_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzEtMTUtMS0xLTE3Mjg1_633c9e12-8b50-4b52-9548-7b9ce7d0ff9a"
      unitRef="usd">8000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i427d3220071f43dbabcfd28ac3b9a5be_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzEtMTctMS0xLTE3Mjg1_dcc40a72-abd9-4d07-beba-750fdd92e991"
      unitRef="usd">126389000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN182Ny9mcmFnOjQwYzNhZTc0NTIxYjQ2Mjg4MWY1ZDQ4NWQ4MjY2MmI3L3RhYmxlOmJjYjhhODZjN2I1MDQyNzk5MTgwMmFhOTM2MzlmNTU2L3RhYmxlcmFuZ2U6YmNiOGE4NmM3YjUwNDI3OTkxODAyYWE5MzYzOWY1NTZfMzEtMTktMS0xLTE3Mjg1_25c98ed5-2b84-4dd5-ab75-b0768770a06d"
      unitRef="usd">595033000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ProfitLoss
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNC0xLTEtMS0xNzI4NQ_2d642c95-1d54-4d87-9fcf-ebfd064d4715"
      unitRef="usd">67470000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNC0zLTEtMS0xNzI4NQ_857d7286-d0b7-4f3e-9985-5398ce3a8681"
      unitRef="usd">59215000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNC01LTEtMS0xNzI4NQ_913cb672-9c3c-44d3-87fc-d00c942e7b2d"
      unitRef="usd">156303000</us-gaap:ProfitLoss>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNi0xLTEtMS0xNzI4NQ_1e2bb738-2a97-4f57-afc5-a7dd98f4fcbe"
      unitRef="usd">36308000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNi0zLTEtMS0xNzI4NQ_13a25026-5fa9-4f46-84df-3720cdd237c4"
      unitRef="usd">40520000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNi01LTEtMS0xNzI4NQ_6dba806d-2f5b-4a14-92ff-93a7d34a414f"
      unitRef="usd">38854000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNy0xLTEtMS0xNzI4NQ_de4278b9-a14d-4858-a009-3dfa3db4ee0d"
      unitRef="usd">168000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNy0zLTEtMS0xNzI4NQ_c35339a1-66dd-42f9-90a6-57f4611b67a9"
      unitRef="usd">168000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNy01LTEtMS0xNzI4NQ_454ef962-67ef-407d-ba63-63579f6cde78"
      unitRef="usd">168000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:ShareBasedCompensation
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfOC0xLTEtMS0xNzI4NQ_62bf869d-6f64-4b1b-9562-35af88cc0cce"
      unitRef="usd">8620000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfOC0zLTEtMS0xNzI4NQ_0775a797-85b5-4cd2-a008-51320fbb9716"
      unitRef="usd">8599000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfOC01LTEtMS0xNzI4NQ_db2b2e8c-ba54-4ef9-a6a2-c629679ba458"
      unitRef="usd">6995000</us-gaap:ShareBasedCompensation>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfOS0xLTEtMS0xNzI4NQ_96c59533-6939-408c-ac3b-a8661fb2ae58"
      unitRef="usd">310000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfOS0zLTEtMS0xNzI4NQ_42f33743-fb05-40e4-8567-03d44de77588"
      unitRef="usd">342000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfOS01LTEtMS0xNzI4NQ_0f0fc0b0-8835-4826-8711-073d485f0650"
      unitRef="usd">355000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:InventoryWriteDown
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTAtMS0xLTEtMTcyODU_dc8a97e3-83a2-46c9-93e9-e95d0d92bd08"
      unitRef="usd">3490000</us-gaap:InventoryWriteDown>
    <us-gaap:InventoryWriteDown
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTAtMy0xLTEtMTcyODU_c2d5b5b7-6e8d-4bc5-b26e-5a0dca819b7d"
      unitRef="usd">4840000</us-gaap:InventoryWriteDown>
    <us-gaap:InventoryWriteDown
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTAtNS0xLTEtMTcyODU_f11cf06a-cea1-4c56-bba4-84539264711a"
      unitRef="usd">2552000</us-gaap:InventoryWriteDown>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTEtMS0xLTEtMTcyODU_07785129-a066-4036-871d-269ac85fa633"
      unitRef="usd">1386000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTEtMy0xLTEtMTcyODU_fc4284e7-20a3-4213-8160-6db36644fce3"
      unitRef="usd">2480000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTEtNS0xLTEtMTcyODU_028d1518-db35-449a-89f6-a57f63bdff3e"
      unitRef="usd">-236000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTItMS0xLTEtMTcyODU_98a792ff-0fbc-4322-9762-b528fc062a86"
      unitRef="usd">-4829000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTItMy0xLTEtMTcyODU_a8f96b16-390f-49b1-beb1-a0fc9338cf81"
      unitRef="usd">-6948000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTItNS0xLTEtMTcyODU_f34907d5-a5dd-4cd5-9be2-30d8b2075c8e"
      unitRef="usd">-25403000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <whd:GainFromRevaluationOfLiabilityRelatedToTaxReceivableAgreement
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTQtMS0xLTEtMTcyODU_605647c8-4906-43e9-9ade-4811916c143d"
      unitRef="usd">898000</whd:GainFromRevaluationOfLiabilityRelatedToTaxReceivableAgreement>
    <whd:GainFromRevaluationOfLiabilityRelatedToTaxReceivableAgreement
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTQtMy0xLTEtMTcyODU_a6e09f16-6084-42e1-bb37-9b0e7b318a87"
      unitRef="usd">-555000</whd:GainFromRevaluationOfLiabilityRelatedToTaxReceivableAgreement>
    <whd:GainFromRevaluationOfLiabilityRelatedToTaxReceivableAgreement
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTQtNS0xLTEtMTcyODU_11b8177c-f44a-4405-b328-9fa1da378dca"
      unitRef="usd">5336000</whd:GainFromRevaluationOfLiabilityRelatedToTaxReceivableAgreement>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTYtMS0xLTEtMTcyODU_f71dbcff-1a65-41e6-b268-750684287ec9"
      unitRef="usd">45492000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTYtMy0xLTEtMTcyODU_3646e579-5f7a-4470-9e1e-470ba688e5a1"
      unitRef="usd">-44829000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTYtNS0xLTEtMTcyODU_3e32320f-7523-4602-b975-de764264b7e9"
      unitRef="usd">-4204000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTctMS0xLTEtMTcyODU_79be6c2b-29cc-4a08-a21f-14a46841c8b2"
      unitRef="usd">36083000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTctMy0xLTEtMTcyODU_a33c1e8f-d763-4239-accf-2be1fa204fa0"
      unitRef="usd">-18201000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTctNS0xLTEtMTcyODU_755dec09-1be4-4d24-b1ca-0afeaf169824"
      unitRef="usd">17592000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTgtMS0xLTEtMTcyODU_4adf9a14-b3bf-4702-aafc-31ab79c626bb"
      unitRef="usd">2789000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTgtMy0xLTEtMTcyODU_f4b26626-f5dd-4805-a695-d8b47276f0ea"
      unitRef="usd">-6177000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTgtNS0xLTEtMTcyODU_b649eed9-4200-4811-a379-8b3613411547"
      unitRef="usd">-438000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayableTrade
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTktMS0xLTEtMTcyODU_f73ab2f0-a5c0-4a2a-8e1d-c26d4307bff7"
      unitRef="usd">22281000</us-gaap:IncreaseDecreaseInAccountsPayableTrade>
    <us-gaap:IncreaseDecreaseInAccountsPayableTrade
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTktMy0xLTEtMTcyODU_3469a572-9724-4b49-87f7-2c2949c5fea7"
      unitRef="usd">-19434000</us-gaap:IncreaseDecreaseInAccountsPayableTrade>
    <us-gaap:IncreaseDecreaseInAccountsPayableTrade
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMTktNS0xLTEtMTcyODU_f823d28a-72b4-4569-9c67-c9b5ae25f88b"
      unitRef="usd">-607000</us-gaap:IncreaseDecreaseInAccountsPayableTrade>
    <us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjAtMS0xLTEtMTcyODU_b59b70e4-c65c-44f8-afb3-7f5d21393f3e"
      unitRef="usd">16628000</us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjAtMy0xLTEtMTcyODU_93f526c2-6a33-4c6a-bf88-8c4deb1eb6da"
      unitRef="usd">-10893000</us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjAtNS0xLTEtMTcyODU_2bfc10e0-84e4-4af6-a99c-cfd1a3ae28a1"
      unitRef="usd">6994000</us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities>
    <whd:IncreaseDecreaseInTaxReceivableAgreementLiabilities
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjEtMS0xLTEtMTcyODU_a1209056-7b4d-4d2b-a500-6678ffc158e9"
      unitRef="usd">-9697000</whd:IncreaseDecreaseInTaxReceivableAgreementLiabilities>
    <whd:IncreaseDecreaseInTaxReceivableAgreementLiabilities
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjEtMy0xLTEtMTcyODU_ad6a7c04-393a-4df7-b5eb-2b28d22aed2d"
      unitRef="usd">-14207000</whd:IncreaseDecreaseInTaxReceivableAgreementLiabilities>
    <whd:IncreaseDecreaseInTaxReceivableAgreementLiabilities
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjEtNS0xLTEtMTcyODU_ee6dfa91-c4ca-44ed-920d-6bc549f40ec4"
      unitRef="usd">-9335000</whd:IncreaseDecreaseInTaxReceivableAgreementLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjItMS0xLTEtMTcyODU_32e72f95-3af9-4442-8bd5-d36a451773a1"
      unitRef="usd">63759000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjItMy0xLTEtMTcyODU_17e8f6d3-62bc-489f-806f-b819de282418"
      unitRef="usd">143380000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjItNS0xLTEtMTcyODU_88b85428-a9cb-4110-97d6-31a86e5d1318"
      unitRef="usd">209632000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <whd:PaymentsForCapitalExpenditures
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjUtMS0xLTEtMTcyODU_3744de68-c2b6-4e87-8364-9455b1d04238"
      unitRef="usd">13939000</whd:PaymentsForCapitalExpenditures>
    <whd:PaymentsForCapitalExpenditures
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjUtMy0xLTEtMTcyODU_c41e56bc-4f5c-45bc-a947-814ce5ede6ee"
      unitRef="usd">24493000</whd:PaymentsForCapitalExpenditures>
    <whd:PaymentsForCapitalExpenditures
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjUtNS0xLTEtMTcyODU_d1bddd42-d818-4da0-9e75-65a8c221764a"
      unitRef="usd">59703000</whd:PaymentsForCapitalExpenditures>
    <us-gaap:ProceedsFromSaleOfProductiveAssets
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjYtMS0xLTEtMTcyODU_84ef64a3-135b-4f36-9668-e009409c0728"
      unitRef="usd">2306000</us-gaap:ProceedsFromSaleOfProductiveAssets>
    <us-gaap:ProceedsFromSaleOfProductiveAssets
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjYtMy0xLTEtMTcyODU_b8660642-55a8-439e-b5ac-a438705b1d85"
      unitRef="usd">6346000</us-gaap:ProceedsFromSaleOfProductiveAssets>
    <us-gaap:ProceedsFromSaleOfProductiveAssets
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjYtNS0xLTEtMTcyODU_8cc10b32-eadd-477a-8297-e32718bfd4c0"
      unitRef="usd">3755000</us-gaap:ProceedsFromSaleOfProductiveAssets>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjctMS0xLTEtMTcyODU_779cfc5b-5e28-43d4-b238-2fdfd350936e"
      unitRef="usd">-11633000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjctMy0xLTEtMTcyODU_9350ed70-6539-4269-9d8a-4f18188fabf0"
      unitRef="usd">-18147000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMjctNS0xLTEtMTcyODU_a14d2c71-60a9-46dd-a717-bac9f13cfbc1"
      unitRef="usd">-55948000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzItMS0xLTEtMTcyODU_9ac03617-ada4-4c30-b110-6757f7ce1724"
      unitRef="usd">5205000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzItMy0xLTEtMTcyODU_425ce2e8-b121-41bc-af41-a98b25aa43d1"
      unitRef="usd">5317000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzItNS0xLTEtMTcyODU_15cc2288-1f32-42ac-9ccd-9a55b0df679c"
      unitRef="usd">7484000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzQtMS0xLTEtMTcyODU_22f45879-a0ee-4e7d-8c8e-7490a8443cab"
      unitRef="usd">21158000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzQtMy0xLTEtMTcyODU_42bea56e-c576-4cfb-8bd7-b029a3f1f491"
      unitRef="usd">17140000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzQtNS0xLTEtMTcyODU_5ea49fb1-fa56-43dc-a9eb-4b9835f47566"
      unitRef="usd">4244000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:DistributionMadeToLimitedLiabilityCompanyLLCMemberCashDistributionsPaid
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzUtMS0xLTEtMTcyODU_a92590ed-b2f9-46d5-bb3b-5551ce5a738c"
      unitRef="usd">9742000</us-gaap:DistributionMadeToLimitedLiabilityCompanyLLCMemberCashDistributionsPaid>
    <us-gaap:DistributionMadeToLimitedLiabilityCompanyLLCMemberCashDistributionsPaid
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzUtMy0xLTEtMTcyODU_78ba7dda-b47f-4b20-92de-72c53b47bebe"
      unitRef="usd">16304000</us-gaap:DistributionMadeToLimitedLiabilityCompanyLLCMemberCashDistributionsPaid>
    <us-gaap:DistributionMadeToLimitedLiabilityCompanyLLCMemberCashDistributionsPaid
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzUtNS0xLTEtMTcyODU_eeb7cf41-4480-4c5e-beb5-fc4c06cff309"
      unitRef="usd">8392000</us-gaap:DistributionMadeToLimitedLiabilityCompanyLLCMemberCashDistributionsPaid>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzctMS0xLTEtMTcyODU_5467b9d7-72f6-4985-989b-f10c103e5a21"
      unitRef="usd">3283000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzctMy0xLTEtMTcyODU_546867d9-985b-4874-9620-4c90ddce305b"
      unitRef="usd">1445000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzctNS0xLTEtMTcyODU_834346a7-8af3-419f-83a2-0364233ce359"
      unitRef="usd">1549000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzgtMS0xLTEtMTcyODU_1a400aeb-837a-4e27-91e3-b5a13c9951ea"
      unitRef="usd">-39388000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzgtMy0xLTEtMTcyODU_55b95ebb-5a0d-48d5-b2b6-3a71b800d14d"
      unitRef="usd">-40206000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfMzgtNS0xLTEtMTcyODU_b11356c8-fe70-4f20-983e-b27dee3279f5"
      unitRef="usd">-21669000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDAtMS0xLTEtMTcyODU_2113135e-88e9-4688-a354-e43acb38839e"
      unitRef="usd">272000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDAtMy0xLTEtMTcyODU_1ae9f216-f40f-46f0-ab07-47c048c73fab"
      unitRef="usd">1029000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDAtNS0xLTEtMTcyODU_c5009111-dee5-4440-94d1-e65a20f4d962"
      unitRef="usd">-253000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDItMS0xLTEtMTcyODU_5269893e-0cc4-4f37-8582-3984b6481ad8"
      unitRef="usd">13010000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDItMy0xLTEtMTcyODU_ac37fea9-3b36-47e3-909d-8006facf2324"
      unitRef="usd">86056000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDItNS0xLTEtMTcyODU_1495fd70-eabe-44c1-b8e5-1928ee55ec20"
      unitRef="usd">131762000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDUtMS0xLTEtMTcyODU_499efc41-4d2c-4c43-9fb4-292289a6ae07"
      unitRef="usd">288659000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ife2d6f3fae2b4e39891dddc47374ddeb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDUtMy0xLTEtMTcyODU_6846ba13-5c5b-47af-8cdc-34dd09cff3c1"
      unitRef="usd">202603000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ibab9af5359784af9b4f85cfd55a31cab_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDUtNS0xLTEtMTcyODU_c049c086-a5c9-41d9-91aa-e05412d66164"
      unitRef="usd">70841000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDYtMS0xLTEtMTcyODU_a0b82f48-6a4b-42ef-a610-f51af82e67ff"
      unitRef="usd">301669000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDYtMy0xLTEtMTcyODU_25108591-1ff9-4ac6-b4c3-b87bf2efc671"
      unitRef="usd">288659000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ife2d6f3fae2b4e39891dddc47374ddeb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183MC9mcmFnOjk4NGUzNTEwZWI4MDRlYWRhYjZkNmJmMTkxNWZhZTcwL3RhYmxlOmU2M2ZkZmE0MWNkOTQ2N2Y4NDMwMmEyZmE5ZWU4MmY5L3RhYmxlcmFuZ2U6ZTYzZmRmYTQxY2Q5NDY3Zjg0MzAyYTJmYTllZTgyZjlfNDYtNS0xLTEtMTcyODU_a3825dcc-6cdc-4658-8b0e-35aa7f71c5c3"
      unitRef="usd">202603000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:NatureOfOperations
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183Ni9mcmFnOjAzMDRjYTIwOWM2NjQwMmNiNmE1MTAwZDgwNWNlNDY2L3RleHRyZWdpb246MDMwNGNhMjA5YzY2NDAyY2I2YTUxMDBkODA1Y2U0NjZfMjY2Mw_9183592c-4258-4b85-907e-0cbb630e2a41">Organization and Nature of Operations&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cactus, Inc. (&#x201c;Cactus Inc.&#x201d;) and its consolidated subsidiaries (the &#x201c;Company&#x201d;), including Cactus Wellhead, LLC (&#x201c;Cactus LLC&#x201d;), are primarily engaged in the design, manufacture and sale of wellhead and pressure control equipment. In addition, we maintain a fleet of frac valves and ancillary equipment for short-term rental, offer repair and refurbishment services and provide field service crews to assist in the installation and operations of pressure control systems. We operate through U.S. service centers located in Texas, New Mexico, Pennsylvania, North Dakota, Louisiana, Oklahoma, Colorado, Wyoming and Utah as well as in Eastern Australia. We also provide rental and service operations in the Kingdom of Saudi Arabia. Our manufacturing and production facilities are located in Bossier City, Louisiana and Suzhou, China and our corporate headquarters are located in Houston, Texas.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cactus Inc. was incorporated on February&#160;17, 2017 as a Delaware corporation for the purpose of completing an initial public offering of equity and related transactions, which was completed on February 12, 2018 (our &#x201c;IPO&#x201d;). Cactus Inc. is a holding company whose only material asset is an equity interest consisting of units representing limited liability company interests in Cactus LLC (&#x201c;CW Units&#x201d;). Cactus Inc. became the sole managing member of Cactus LLC upon completion of our IPO. Cactus LLC is a Delaware limited liability company and was formed on July&#160;11, 2011. Except as otherwise indicated or required by the context, all references to &#x201c;Cactus,&#x201d; &#x201c;we,&#x201d; &#x201c;us&#x201d; and &#x201c;our&#x201d; refer to Cactus Inc. and its consolidated subsidiaries (including Cactus LLC). For detailed information regarding our IPO, see our Annual Report on Form 10-K for the year ended December 31, 2018.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As the sole managing member of Cactus LLC, Cactus Inc. operates and controls all of the business and affairs of Cactus LLC and conducts its business through Cactus LLC and its subsidiaries. As a result, Cactus Inc. consolidates the financial results of Cactus LLC and its subsidiaries and reports a non-controlling interest related to the portion of CW Units not owned by Cactus Inc., which reduces net income attributable to holders of Cactus Inc.&#x2019;s Class&#160;A common stock, par value $0.01 per share (&#x201c;Class A common stock&#x201d;). &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 December&#160;31, 2021, Cactus Inc. owned 78.0% of Cactus LLC, as compared to 63.3% as of December&#160;31, 2020. As of December&#160;31, 2021, Cactus Inc. had outstanding 59.0 million shares of Class A common stock (representing 78.0% of the total voting power) and 16.7 million shares of Class B common stock (representing 22.0% of the total voting power).&lt;/span&gt;&lt;/div&gt;</us-gaap:NatureOfOperations>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="id1c028c2dde14c139792bfef59a5925c_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183Ni9mcmFnOjAzMDRjYTIwOWM2NjQwMmNiNmE1MTAwZDgwNWNlNDY2L3RleHRyZWdpb246MDMwNGNhMjA5YzY2NDAyY2I2YTUxMDBkODA1Y2U0NjZfMjMzNg_ab4f5423-7a1b-44b9-aa51-f7479bcc6329"
      unitRef="usdPerShare">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:LimitedLiabilityCompanyLLCOrLimitedPartnershipLPMembersOrLimitedPartnersOwnershipInterest
      contextRef="i4d69e82813d54eac87c9f055bf40fa17_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183Ni9mcmFnOjAzMDRjYTIwOWM2NjQwMmNiNmE1MTAwZDgwNWNlNDY2L3RleHRyZWdpb246MDMwNGNhMjA5YzY2NDAyY2I2YTUxMDBkODA1Y2U0NjZfMjQwNA_26624315-9828-483e-a85b-5cabbacdd0e2"
      unitRef="number">0.780</us-gaap:LimitedLiabilityCompanyLLCOrLimitedPartnershipLPMembersOrLimitedPartnersOwnershipInterest>
    <us-gaap:LimitedLiabilityCompanyLLCOrLimitedPartnershipLPMembersOrLimitedPartnersOwnershipInterest
      contextRef="i567436424b924a80b718840190fadba0_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183Ni9mcmFnOjAzMDRjYTIwOWM2NjQwMmNiNmE1MTAwZDgwNWNlNDY2L3RleHRyZWdpb246MDMwNGNhMjA5YzY2NDAyY2I2YTUxMDBkODA1Y2U0NjZfMjQzNw_8880b70b-b54f-415e-816d-cb4ceb6adfc9"
      unitRef="number">0.633</us-gaap:LimitedLiabilityCompanyLLCOrLimitedPartnershipLPMembersOrLimitedPartnersOwnershipInterest>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="id1c028c2dde14c139792bfef59a5925c_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183Ni9mcmFnOjAzMDRjYTIwOWM2NjQwMmNiNmE1MTAwZDgwNWNlNDY2L3RleHRyZWdpb246MDMwNGNhMjA5YzY2NDAyY2I2YTUxMDBkODA1Y2U0NjZfMjQ4OA_cb9bf780-1786-4ffb-81f8-793d92dd30d5"
      unitRef="shares">59000000.0</us-gaap:CommonStockSharesOutstanding>
    <whd:CommoStockVotingRightsPercentage
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183Ni9mcmFnOjAzMDRjYTIwOWM2NjQwMmNiNmE1MTAwZDgwNWNlNDY2L3RleHRyZWdpb246MDMwNGNhMjA5YzY2NDAyY2I2YTUxMDBkODA1Y2U0NjZfMjU0NA_dcf9d976-86a1-4bd5-890a-062d8b0f0e85"
      unitRef="number">0.780</whd:CommoStockVotingRightsPercentage>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i5075e470d1fa43029ac043b976a87940_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183Ni9mcmFnOjAzMDRjYTIwOWM2NjQwMmNiNmE1MTAwZDgwNWNlNDY2L3RleHRyZWdpb246MDMwNGNhMjA5YzY2NDAyY2I2YTUxMDBkODA1Y2U0NjZfMjU3OA_a21ad9ec-9085-491c-b5f1-9eb87cb467b6"
      unitRef="shares">16700000</us-gaap:CommonStockSharesOutstanding>
    <whd:CommoStockVotingRightsPercentage
      contextRef="i99d7d201c9f44d7fa6143765554d1c03_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183Ni9mcmFnOjAzMDRjYTIwOWM2NjQwMmNiNmE1MTAwZDgwNWNlNDY2L3RleHRyZWdpb246MDMwNGNhMjA5YzY2NDAyY2I2YTUxMDBkODA1Y2U0NjZfMjYzNA_6972f95b-9129-46ba-81c1-1fbe87230692"
      unitRef="number">0.220</whd:CommoStockVotingRightsPercentage>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNTc_84f18076-32f2-40ea-ab9f-42e7fa73e653">Summary of Significant Accounting Policies and Other Items&lt;div style="margin-bottom:12pt"&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 Presentation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America (&#x201c;GAAP&#x201d;). These consolidated financial statements include the accounts of Cactus Inc. and its wholly owned subsidiaries. All intercompany transactions and balances have been eliminated upon consolidation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cactus Inc. consolidates the financial results of Cactus LLC and its subsidiaries and reports a non-controlling interest related to the portion of CW Units not owned by Cactus Inc., which reduces net income attributable to holders of Cactus Inc.&#x2019;s Class&#160;A common stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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-bottom:12pt;text-indent:36pt"&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 our consolidated financial statements in conformity with GAAP, we make numerous estimates and assumptions that affect the accounting for and recognition and disclosure of assets, liabilities, equity, revenues and expenses. We must make these estimates and assumptions because certain information that we use is dependent on future events, cannot be calculated with a high degree of precision from available data or is not otherwise capable of being readily calculated based on accepted methodologies. In some cases, these estimates are particularly difficult to determine, and we must exercise significant judgment. Actual results could differ materially from the estimates and assumptions that we use in the preparation of our consolidated financial statements.&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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 Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We operate in a single operating segment, which reflects how we manage our business and the fact that all of our products and services are dependent upon the oil and natural gas industry. Substantially all of our products and services are sold in the U.S. to oil and natural gas exploration and production companies. We operate in the United States, Australia, China and the Kingdom of Saudi Arabia. Our operations outside of the United States represented less than 10% of our consolidated operations for all periods presented in these consolidated financial statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Concentrations of Credit Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our assets that are potentially subject to concentrations of credit risk are cash and cash equivalents and accounts receivable. We manage the credit risk associated with these financial instruments by transacting only with what management believes are financially secure counterparties, requiring credit approvals and credit limits and monitoring counterparties&#x2019; financial condition. Our receivables are spread over a number of customers, a majority of which are operators and suppliers to the oil and natural gas industry. Our maximum exposure to credit loss in the event of non&#x2011;performance by the customer is limited to the receivable balance. We perform ongoing credit evaluations and monitoring as to the financial condition of our customers with respect to trade receivables. Generally, no collateral is required as a condition of sale. We also control our exposure associated with trade receivables by discontinuing sales and service to non-paying customers. For the year ended December 31, 2021, we had one customer representing approximately 12% of total revenues. No customer represented 10% or more of total revenues for the year ended December 2020 and one customer represented approximately 10% of total revenues in the year ended December 31, 2019.&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Significant Vendors&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The principal raw materials used in the manufacture of our products and rental equipment include forgings and plate, castings, tube and bar stock. In addition, we require accessory items (such as elastomers, ring gaskets, studs and nuts) and machined components and assemblies. We purchase these items from vendors primarily located in the United States, China, India and Australia. For the year ended December 31, 2021, two vendors each represented approximately 9% of our total third-party vendor purchases of raw materials, finished products, equipment, machining and other services. For the years ended December 31, 2020 and 2019, one vendor represented approximately 9% and 16%, respectively, of such purchases. Amounts due to these vendors included in accounts payable, in the consolidated balance sheets, as of December&#160;31, 2021 and 2020 totaled $6.4 million (combined total for two vendors) and $1.5 million, respectively.&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Tax Receivable Agreement (TRA)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 amounts payable under the TRA in accordance with Accounting Standards Codification (&#x201c;ASC&#x201d;) Topic 450, Contingencies. As such, subsequent changes to the measurement of the TRA liability are recognized in the statements of income as a component of other income (expense), net. During the years ended December&#160;31, 2021, 2020 and 2019, we recognized a $0.9 million gain, a $0.6 million loss and a $5.3 million gain on the change in the TRA liability, respectively. See Note 9 for further details on the TRA liability.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 revenues are derived from short-term contracts for fixed consideration. Product sales generally do not include right of return or other significant post-delivery obligations. A contract&#x2019;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. Revenues are recognized when we satisfy a performance obligation by transferring control of the promised goods or providing services to our customers at a point in time, in an amount specified in the contract with our customer and that reflects the consideration to which we expect to be entitled in exchange for those goods or services. The majority of our contracts with customers contain a single performance obligation to provide agreed upon products or services. For contracts with multiple performance obligations, we allocate revenue to each performance obligation based on its relative standalone selling price. We do not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract with the customer. We do not incur any material costs of obtaining contracts.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We do not adjust the amount of consideration per the contract for the effects of a significant financing component when we expect, at contract inception, that the period between the transfer of a promised good or service to a customer and when the customer pays for that good or service will be one year or less, which is in substantially all cases. Payment terms and conditions vary, although terms generally include a requirement of payment within 30 to 45 days. Revenues are recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. We treat shipping and &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;handling associated with outbound freight as a fulfillment cost instead of as a separate performance obligation. We recognize the cost for the associated shipping and handling when incurred as an expense in cost of sales.&#160;Our revenues are derived from three sources: products, rentals, and field service and other:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;padding-left:36pt"&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;Product revenue.&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; Product revenues are primarily derived from the sale of wellhead systems and production trees. Revenue is recognized when the products have shipped and the customer obtains control of the products. &#160;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;padding-left:36pt"&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;Rental revenue.&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; Rental revenues are&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%"&gt;&#160;&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;primarily derived from the rental of equipment, tools and products used for well control during the drilling and completion phases to customers. Our rental agreements are directly with our customers and provide for a rate based on the period of time the equipment is used or made available to the customer. In addition, customers are charged for repair costs, typically through an agreed upon rate for each rental job. Revenue is recognized ratably over the rental period, which tends to be short-term in nature with most equipment on site for less than 90 days.&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;padding-left:36pt"&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;Field service and other revenue.&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; We provide field services to our customers based on contractually agreed rates. Other revenues are derived from providing repair and reconditioning services to customers who have installed wellheads and production trees on their wellsite. Revenues are recognized as the services are performed or rendered.&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The financial position and results of operations of our foreign subsidiaries are measured using the local currency as the functional currency. Revenues and expenses of the subsidiaries have been translated into U.S. dollars at average exchange rates prevailing during the period. Assets and liabilities have been translated at the rates of exchange on the balance sheet dates. The resulting translation gain and loss adjustments have been recorded directly as a separate component of other comprehensive income in the consolidated statements of comprehensive income and stockholders&#x2019; equity. Transaction gains and losses that arise from exchange rate fluctuations on transactions denominated in a currency other than the functional currency are included in our consolidated statements of income as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Derivative Financial Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We utilize a hedging program to reduce the risks associated with changes in the value of monetary assets and liabilities denominated in currencies other than the functional currency of our subsidiaries. Under this program, we utilize foreign currency forward contracts to offset gains or losses recorded upon remeasurement of assets and liabilities stated in the non-functional currencies of our subsidiaries. These forward contracts are not designated as hedges for accounting purposes. As such, we record changes in fair value of the forward contracts in our consolidated statements of income along with the gain or loss resulting from remeasurement of the U.S. dollar denominated financial assets and liabilities held by our foreign subsidiaries. The forward contracts are typically only 30 days in duration and are settled and renewed each month. As of December 31, 2021 and 2020, the fair value of our forward contracts was a liability of approximately $37 thousand and $56 thousand, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Stock-based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We&#160;measure the cost of equity&#x2011;based awards based on the grant&#160;date fair value and allocate the compensation expense over the requisite service period, which is usually the vesting period. Beginning with our 2021 grants, the grant date fair value is determined by the closing price of our Class A common stock on the grant date.&#160;Prior to 2021, the grant date fair value was determined by the average price of the trading high and trading low of our Class A common stock on the grant date.&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred taxes are recorded using the asset and liability method, whereby tax assets and liabilities are determined based on the differences between the financial statement and tax basis of assets and liabilities using enacted tax laws and rates expected to apply to taxable income in the&#160;year in which the differences are expected to reverse. We regularly evaluate the valuation allowances established for deferred tax assets for which future realization is uncertain. In assessing the realizability of deferred tax assets, we consider both positive and negative evidence, including scheduled reversals of deferred tax assets and liabilities, projected future taxable income, tax planning strategies and results of recent operations. If, based on the weight of available evidence, it is more likely than not that the deferred tax assets will not be realized, a valuation allowance is recorded.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cactus Inc. is a corporation and is subject to U.S. federal as well as state income tax related to its ownership percentage in Cactus LLC. Cactus LLC is a limited liability company treated as a partnership for U.S. federal income tax &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;purposes and files a U.S. Return of Partnership Income, which includes both our U.S. and foreign operations. Consequently, the members of Cactus LLC are taxed individually on their share of earnings for U.S. federal and state income tax purposes. However, Cactus LLC is subject to the Texas Margins Tax. Additionally, our operations in both Australia and China are subject to local country income taxes.&#160;See Note 5 &#x201c;Income Taxes&#x201d; for additional information regarding income taxes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash in excess of current operating requirements is invested in short-term interest-bearing&#160;investments with maturities of three months or less at the date of purchase and is stated at cost, which approximates fair value. Throughout the&#160;year we maintained cash balances that were not covered by federal deposit insurance. We have not experienced any losses in such accounts.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Accounts Receivable and Allowance for Credit Losses&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We extend credit to customers in the normal course of business. Our customers are predominantly oil and gas companies in the United States. Our receivables are short-term in nature and typically due in 30 to 45 days. We do not accrue interest on delinquent receivables. Accounts receivable includes amounts billed and currently due from customers and unbilled amounts for products delivered and services performed for which billings had not yet been submitted to the customers. Total unbilled revenue included in accounts receivable as of December&#160;31, 2021 and 2020 was $24.1 million and $8.7 million, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We maintain an allowance for credit losses to provide for the amount of billed receivables we believe to be at risk of loss. In our determination of the allowance for credit losses, we pool receivables with similar risk characteristics based on customer size, credit ratings, payment history, bankruptcy status and other factors known to us and apply an expected credit loss percentage. The expected credit loss percentage is determined using historical loss data adjusted for current conditions and forecasts of future economic conditions. Accounts deemed uncollectible are applied against the allowance for credit losses. The following is a rollforward of our allowance for credit losses:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:61.034%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&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:7.818%"/&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:7.818%"/&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:7.822%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance at Beginning of Period&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:8pt;font-weight:700;line-height:100%"&gt;Expense&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:8pt;font-weight:700;line-height:100%"&gt;Write&#160;off&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:8pt;font-weight:700;line-height:100%"&gt;Balance at End of Period&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;Year Ended December 31, 2021&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;598&#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;310&#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;(167)&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;741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2020&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;837&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(581)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;598&#160;&lt;/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;Year Ended December 31, 2019&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;576&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(94)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;837&#160;&lt;/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-bottom:12pt"&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;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&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. Cost is determined using standard cost (which approximates average cost) and weighted average methods. Costs include an application of related direct labor, duties, tariffs, freight and overhead costs. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal and transportation. Reserves are made for excess and obsolete items based on a range of factors, including age, usage and technological or market changes that may impact demand for those products. The inventory obsolescence reserve was $18.0 million and $14.6 million as of December&#160;31, 2021 and 2020, respectively.&#160;The following is a rollforward of our inventory obsolescence reserve:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:48.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&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:8.841%"/&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:7.818%"/&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:8.987%"/&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:8.116%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance at Beginning of Period&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:8pt;font-weight:700;line-height:100%"&gt;Expense&#160;&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:8pt;font-weight:700;line-height:100%"&gt;Write&#160;off&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:8pt;font-weight:700;line-height:100%"&gt;Translation Adjustments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance at End of Period&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;Year Ended December 31, 2021&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;14,637&#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;3,490&#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;(62)&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;(53)&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,012&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2020&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;9,772&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;4,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(53)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;14,637&#160;&lt;/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;Year Ended December 31, 2019&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;7,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,552&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(90)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;9,772&#160;&lt;/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-bottom:12pt"&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;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment are stated at cost. We manufacture or construct most of our own rental assets and during the manufacture of these assets, they are reflected as construction in progress until complete. We depreciate the cost of property and equipment using the straight&#x2011;line method over the estimated useful lives and depreciate our rental assets to their salvage value. Leasehold improvements are amortized over the shorter of the remaining lease term or economic life of the related assets. When assets are retired or otherwise disposed of, the cost and related accumulated depreciation are removed from the accounts and &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;any resulting gain or loss are reflected in income for the period. The cost of maintenance and repairs is charged to income as incurred; significant renewals and improvements are capitalized. Estimated useful lives are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&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:84.090%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:1.979%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.706%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.419%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:5.206%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Land&lt;/span&gt;&lt;/td&gt;&lt;td colspan="12" 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;N/A&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;Buildings and improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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: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;30&lt;/span&gt;&lt;/td&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;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;Machinery and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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: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;12&lt;/span&gt;&lt;/td&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;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;Vehicles under finance lease&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: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&lt;/span&gt;&lt;/td&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;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;Rental equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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: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;11&lt;/span&gt;&lt;/td&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;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;Furniture and fixtures&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: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;5&lt;/span&gt;&lt;/td&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;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;Computers and software&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: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;4&lt;/span&gt;&lt;/td&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;years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment as of December&#160;31, 2021 and 2020 consists of the following:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;Land&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;3,203&#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;3,203&#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 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;Buildings and improvements&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;22,532&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;21,935&#160;&lt;/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;Machinery and equipment&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;56,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;57,726&#160;&lt;/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;Vehicles under finance lease&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,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;14,371&#160;&lt;/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;Rental equipment&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;180,704&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;172,012&#160;&lt;/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;Furniture and fixtures&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,755&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,780&#160;&lt;/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;Computers and software&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,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Gross property and equipment&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;292,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;274,557&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Accumulated depreciation&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;(175,992)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(147,221)&lt;/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;Net property and equipment&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;116,084&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;127,336&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Construction in progress&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;13,033&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;15,489&#160;&lt;/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;Total property and equipment, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;129,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;142,825&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depreciation and amortization was $36.3 million, $40.5 million and $38.9 million for 2021, 2020 and 2019, respectively. Depreciation and amortization expense is included in the consolidated statements of income as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;3,176&#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;3,506&#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;3,304&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of rental revenue&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;25,812&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;28,063&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,881&#160;&lt;/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;Cost of field service and other revenue&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;6,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;8,075&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,986&#160;&lt;/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;Selling, general and administrative expenses&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;457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;683&#160;&lt;/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 depreciation and amortization&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;36,308&#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;40,520&#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;38,854&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Impairment of Long&#x2011;Lived Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 the recoverability of long&#x2011;lived assets, such as property and equipment, when events or changes in circumstances occur that indicate the carrying value of the asset or asset group may not be recoverable. The assessment of possible impairment is based on our ability to recover the carrying value of the asset or asset group from the expected future pre&#x2011;tax cash flows (undiscounted) of the related operations. If these cash flows are less than the carrying value of such asset, an impairment loss is recognized for the difference between estimated fair value and carrying value. We concluded there were no indicators evident or other circumstances present that these assets were not recoverable and accordingly, no impairment charges of long&#x2011;lived assets were recognized for 2021. Due to reduced sales and cash flows in 2020, we assessed the recoverability of our long-lived assets at each interim period of 2020 and as of December 31, 2020. No impairments were recognized in 2020 as a result of these assessments. Additionally, no impairment charges of long&#x2011;lived assets were recognized in 2019.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill represents the excess of purchase price paid over the fair value of the net assets of acquired businesses. Our goodwill resulted from the acquisition of a manufacturing facility in Bossier City, Louisiana in 2011. The facility supports our full range of products, rentals and services. Goodwill is not amortized, but we evaluate at least annually whether it is impaired. Goodwill is considered impaired if the carrying amount of the reporting unit exceeds its estimated fair value. We conduct our annual assessment of the recoverability of goodwill as of December&#160;31&#160;of each year. We first assess qualitative factors to determine whether it is more likely than not that the fair value of a reporting unit is less than its carrying amount as a basis for determining whether it is necessary to perform the goodwill impairment test. If the qualitative assessment indicates that it is more likely than not that the fair value of the reporting unit is less than its carrying amount or we elect not to perform a qualitative assessment, the quantitative assessment of goodwill test is performed. The goodwill impairment test is also performed whenever events or changes in circumstances indicate that the carrying value may not be recoverable. If it is necessary to perform the quantitative assessment to determine if our goodwill is impaired, we typically utilize a discounted cash flow analysis using management&#x2019;s projections that are subject to various risks and uncertainties of revenues, expenses and cash flows as well as assumptions regarding discount rates, terminal value and control premiums. Estimates of future cash flows and fair value are highly subjective and inherently imprecise. These estimates can change materially from period to period based on many factors. Accordingly, if conditions change in the future, we may record impairment losses, which could be material to any particular reporting period. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;No goodwill impairment losses were deemed necessary in 2021. Due to the depressed oil price environment, reduced sales and cash flow projections and a significant decline in our market capitalization as of March 31, 2020, we assessed whether our goodwill may have been impaired as of March 31, 2020. Our quantitative impairment test using management&#x2019;s current projections of revenues, expenses and cash flows as of March 31, 2020 calculated significant cushion and no impairment was recognized as a result of this assessment. Actual results during the remainder of the year were consistent with expectations and our forecasts had not materially changed; therefore, we concluded that our goodwill was not impaired at each subsequent interim period of 2020 and as of December 31, 2020. Additionally, no goodwill impairment losses were deemed necessary in 2019. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Accrued Expenses and Other Current Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued expenses and other current liabilities as of December&#160;31, 2021 and 2020 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.377%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.295%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued international freight and tariffs&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;14,794&#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;2,087&#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;Payroll, incentive compensation, payroll taxes and benefits&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;7,030&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;4,210&#160;&lt;/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;Deferred revenue&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,764&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,068&#160;&lt;/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;Taxes other than income&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,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income based tax payable&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,182&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,336&#160;&lt;/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;Accrued professional fees and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,078&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;687&#160;&lt;/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;Accrued dividends&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;346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;271&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Accrued workers&#x2019; compensation insurance&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;269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;text-align:left;vertical-align: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 warranties&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;136&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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 accrued expenses and other current liabilities&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;28,240&#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;11,392&#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-bottom:12pt;text-indent:36pt"&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;Self-Insurance Accrued Expenses&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We maintain a partially self-insured health benefit plan which provides medical and prescription drug benefits to certain of our employees electing coverage under the plan. Our exposure is limited by individual and aggregate stop loss limits through third-party insurance carriers.&#160;Our self-insurance expense is accrued based upon the aggregate of the expected liability for reported claims and the estimated liability for claims incurred but not reported, based on historical claims experience provided by our third-party insurance advisors, adjusted as necessary based upon management&#x2019;s reasoned judgment. Actual employee medical claims expense may differ from estimated loss provisions based on historical experience. The liabilities for these claims are included as a component of payroll, incentive compensation, payroll taxes and benefits in the table above and were $1.1 million and $1.3 million as of December&#160;31, 2021 and 2020, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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;Product Warranties&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We generally warrant our manufactured products for 12 months from the date placed in service. The estimated liability for product warranties is based on historical and current claims experience.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Authoritative guidance on fair value measurements provides a framework for measuring fair value and establishes a fair value hierarchy that prioritizes the inputs used to measure fair value, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1 inputs) and the lowest priority to unobservable inputs (Level 3 inputs). The carrying value of cash and cash equivalents, receivables, accounts payable and accrued expenses approximates fair value based on the short-term nature of these accounts. The fair value of our foreign currency forwards is determined using market observable inputs including forward and spot prices (Level 2 inputs). We had no long-term debt outstanding as of December&#160;31, 2021 or 2020. &#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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;Employee Benefit Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our employees within the United States are eligible to participate in a 401(k)&#160;plan sponsored by us. These employees are eligible to participate on the first day of the month following 30 days of employment and if they are at least eighteen years of age. Eligible employees may contribute a&#160;percentage of their compensation subject to a maximum imposed by the Internal Revenue Code. Similar benefit plans exist for employees of our foreign subsidiaries. We match 100% of the first 3% of gross pay contributed by each employee and 50% of the next 4% of gross pay contributed by each employee and we may also make additional non&#x2011;elective employer contributions at our discretion under the plan. Due to the difficult economic environment at that time, the 401(k) match was temporarily suspended in the U.S. in June 2020 and reinstated in August 2021. During 2021, 2020 and 2019, employer matching contributions totaled $1.2 million, $1.6 million and $3.1 million, respectively. During the year ended December 31, 2019, a $0.1 million non-elective contribution was made under the 401(k) plan, whereas no such contributions were made in 2021 or 2020.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNDE_3c4921c6-7028-4846-8c5a-62cd8302bcd5">&lt;div style="margin-bottom:12pt"&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 Presentation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America (&#x201c;GAAP&#x201d;). These consolidated financial statements include the accounts of Cactus Inc. and its wholly owned subsidiaries. All intercompany transactions and balances have been eliminated upon consolidation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cactus Inc. consolidates the financial results of Cactus LLC and its subsidiaries and reports a non-controlling interest related to the portion of CW Units not owned by Cactus Inc., which reduces net income attributable to holders of Cactus Inc.&#x2019;s Class&#160;A common stock.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNjQ_a151d165-9617-4f83-9c85-cc691e00c0f9">Use of EstimatesIn preparing our consolidated financial statements in conformity with GAAP, we make numerous estimates and assumptions that affect the accounting for and recognition and disclosure of assets, liabilities, equity, revenues and expenses. We must make these estimates and assumptions because certain information that we use is dependent on future events, cannot be calculated with a high degree of precision from available data or is not otherwise capable of being readily calculated based on accepted methodologies. In some cases, these estimates are particularly difficult to determine, and we must exercise significant judgment. Actual results could differ materially from the estimates and assumptions that we use in the preparation of our consolidated financial statements.</us-gaap:UseOfEstimates>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNTg_b7bb28ff-c5d5-4293-b6b6-dc2ba96f9332">&lt;div style="margin-bottom:12pt"&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 Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We operate in a single operating segment, which reflects how we manage our business and the fact that all of our products and services are dependent upon the oil and natural gas industry. Substantially all of our products and services are sold in the U.S. to oil and natural gas exploration and production companies. We operate in the United States, Australia, China and the Kingdom of Saudi Arabia. Our operations outside of the United States represented less than 10% of our consolidated operations for all periods presented in these consolidated financial statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <us-gaap:ConcentrationRiskCreditRisk
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNDY_d01ef8de-22ef-4412-bff7-0eac82c0c8ee">Concentrations of Credit RiskOur assets that are potentially subject to concentrations of credit risk are cash and cash equivalents and accounts receivable. We manage the credit risk associated with these financial instruments by transacting only with what management believes are financially secure counterparties, requiring credit approvals and credit limits and monitoring counterparties&#x2019; financial condition. Our receivables are spread over a number of customers, a majority of which are operators and suppliers to the oil and natural gas industry. Our maximum exposure to credit loss in the event of non&#x2011;performance by the customer is limited to the receivable balance. We perform ongoing credit evaluations and monitoring as to the financial condition of our customers with respect to trade receivables. Generally, no collateral is required as a condition of sale. We also control our exposure associated with trade receivables by discontinuing sales and service to non-paying customers. For the year ended December 31, 2021, we had one customer representing approximately 12% of total revenues. No customer represented 10% or more of total revenues for the year ended December 2020 and one customer represented approximately 10% of total revenues in the year ended December 31, 2019.</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ibf4963e3a5354ac1a5db1f4900405381_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMzIzNQ_d89fbc7f-9222-41ca-ac1b-eb8423ca6e4c"
      unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i36bf4009c9b34d75befe3b97069e3b2e_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMzM4MA_ee828f78-6c8b-4133-80de-908266070ad9"
      unitRef="number">0.10</us-gaap:ConcentrationRiskPercentage1>
    <whd:MajorVendorsPolicyPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNjU_ea82bed7-bcc8-4859-9387-2e57ec6a49f7">Significant VendorsThe principal raw materials used in the manufacture of our products and rental equipment include forgings and plate, castings, tube and bar stock. In addition, we require accessory items (such as elastomers, ring gaskets, studs and nuts) and machined components and assemblies. We purchase these items from vendors primarily located in the United States, China, India and Australia. For the year ended December 31, 2021, two vendors each represented approximately 9% of our total third-party vendor purchases of raw materials, finished products, equipment, machining and other services. For the years ended December 31, 2020 and 2019, one vendor represented approximately 9% and 16%, respectively, of such purchases. Amounts due to these vendors included in accounts payable, in the consolidated balance sheets, as of December&#160;31, 2021 and 2020 totaled $6.4 million (combined total for two vendors) and $1.5 million, respectively.</whd:MajorVendorsPolicyPolicyTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i664108f4d0314686a56ecafd4b045fc2_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfNjU5NzA2OTc5NTk4Mw_0b697394-68df-487e-b76e-1499f2d404ca"
      unitRef="number">0.09</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i148a7a26e5f14e5ebdee3db037a5b0c9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfNjU5NzA2OTc5NTk4Mw_9d7624f2-7c58-4b4b-a572-97a486372450"
      unitRef="number">0.09</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i3d05f1e8a3df4400a75e186a6a0b2a78_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMzY4OQ_d2184fe4-5d40-4596-987c-38bfa9301dc9"
      unitRef="number">0.09</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i77dfc858bbe34705b863b8296c316004_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMzY5Ng_5d7fb298-d6ec-497a-92e6-d8200c9d1bef"
      unitRef="number">0.16</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:AccountsPayableTradeCurrent
      contextRef="i2e80bf9f4bc8402fbc3ccf93f36fccf8_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMzk1OQ_62794be0-d35b-4e63-a117-4bfffe71ddd6"
      unitRef="usd">6400000</us-gaap:AccountsPayableTradeCurrent>
    <us-gaap:AccountsPayableTradeCurrent
      contextRef="i8137d66a31fb47db8b994763726c88be_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMzk2Ng_1592d322-ea8e-43fc-b09f-5ec2fa096e78"
      unitRef="usd">1500000</us-gaap:AccountsPayableTradeCurrent>
    <whd:TaxReceivableAgreementPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNDg_dd694cb0-bcc6-4ba2-8518-00424fe74313">&lt;div style="margin-bottom:12pt"&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;Tax Receivable Agreement (TRA)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 amounts payable under the TRA in accordance with Accounting Standards Codification (&#x201c;ASC&#x201d;) Topic 450, Contingencies. As such, subsequent changes to the measurement of the TRA liability are recognized in the statements of income as a component of other income (expense), net. During the years ended December&#160;31, 2021, 2020 and 2019, we recognized a $0.9 million gain, a $0.6 million loss and a $5.3 million gain on the change in the TRA liability, respectively. See Note 9 for further details on the TRA liability.&lt;/span&gt;&lt;/div&gt;</whd:TaxReceivableAgreementPolicyTextBlock>
    <whd:GainLossOnChangeInTaxReceivableAgreementLiability
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfNDM1Ng_745c19ab-3c15-4e52-a6ad-05832b01b9dd"
      unitRef="usd">900000</whd:GainLossOnChangeInTaxReceivableAgreementLiability>
    <whd:GainLossOnChangeInTaxReceivableAgreementLiability
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfNDM3MA_0579101a-1c81-4e28-857e-68a09ec95a51"
      unitRef="usd">-600000</whd:GainLossOnChangeInTaxReceivableAgreementLiability>
    <whd:GainLossOnChangeInTaxReceivableAgreementLiability
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfNjU5NzA2OTc5MTg4OQ_b2d27514-a6b7-4182-a526-aa6526dbe729"
      unitRef="usd">5300000</whd:GainLossOnChangeInTaxReceivableAgreementLiability>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNDc_0e77f731-b848-454a-8c49-67f7ccdf56e8">&lt;div style="margin-bottom:12pt"&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;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 revenues are derived from short-term contracts for fixed consideration. Product sales generally do not include right of return or other significant post-delivery obligations. A contract&#x2019;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. Revenues are recognized when we satisfy a performance obligation by transferring control of the promised goods or providing services to our customers at a point in time, in an amount specified in the contract with our customer and that reflects the consideration to which we expect to be entitled in exchange for those goods or services. The majority of our contracts with customers contain a single performance obligation to provide agreed upon products or services. For contracts with multiple performance obligations, we allocate revenue to each performance obligation based on its relative standalone selling price. We do not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract with the customer. We do not incur any material costs of obtaining contracts.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We do not adjust the amount of consideration per the contract for the effects of a significant financing component when we expect, at contract inception, that the period between the transfer of a promised good or service to a customer and when the customer pays for that good or service will be one year or less, which is in substantially all cases. Payment terms and conditions vary, although terms generally include a requirement of payment within 30 to 45 days. Revenues are recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. We treat shipping and &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;handling associated with outbound freight as a fulfillment cost instead of as a separate performance obligation. We recognize the cost for the associated shipping and handling when incurred as an expense in cost of sales.&#160;Our revenues are derived from three sources: products, rentals, and field service and other:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;padding-left:36pt"&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;Product revenue.&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; Product revenues are primarily derived from the sale of wellhead systems and production trees. Revenue is recognized when the products have shipped and the customer obtains control of the products. &#160;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;padding-left:36pt"&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;Rental revenue.&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; Rental revenues are&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%"&gt;&#160;&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;primarily derived from the rental of equipment, tools and products used for well control during the drilling and completion phases to customers. Our rental agreements are directly with our customers and provide for a rate based on the period of time the equipment is used or made available to the customer. In addition, customers are charged for repair costs, typically through an agreed upon rate for each rental job. Revenue is recognized ratably over the rental period, which tends to be short-term in nature with most equipment on site for less than 90 days.&#160;&lt;/span&gt;&lt;/div&gt;Field service and other revenue. We provide field services to our customers based on contractually agreed rates. Other revenues are derived from providing repair and reconditioning services to customers who have installed wellheads and production trees on their wellsite. Revenues are recognized as the services are performed or rendered.</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNjY_64a37a38-7f84-4714-9726-9fc3f3b34904">&lt;div style="margin-bottom:12pt"&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;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The financial position and results of operations of our foreign subsidiaries are measured using the local currency as the functional currency. Revenues and expenses of the subsidiaries have been translated into U.S. dollars at average exchange rates prevailing during the period. Assets and liabilities have been translated at the rates of exchange on the balance sheet dates. The resulting translation gain and loss adjustments have been recorded directly as a separate component of other comprehensive income in the consolidated statements of comprehensive income and stockholders&#x2019; equity. Transaction gains and losses that arise from exchange rate fluctuations on transactions denominated in a currency other than the functional currency are included in our consolidated statements of income as incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:DerivativesPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNjc_16f8d791-e7b2-4e7d-8400-e4ef9c82aa00">Derivative Financial InstrumentsWe utilize a hedging program to reduce the risks associated with changes in the value of monetary assets and liabilities denominated in currencies other than the functional currency of our subsidiaries. Under this program, we utilize foreign currency forward contracts to offset gains or losses recorded upon remeasurement of assets and liabilities stated in the non-functional currencies of our subsidiaries. These forward contracts are not designated as hedges for accounting purposes. As such, we record changes in fair value of the forward contracts in our consolidated statements of income along with the gain or loss resulting from remeasurement of the U.S. dollar denominated financial assets and liabilities held by our foreign subsidiaries. The forward contracts are typically only 30 days in duration and are settled and renewed each month. As of December 31, 2021 and 2020, the fair value of our forward contracts was a liability of approximately $37 thousand and $56 thousand, respectively.</us-gaap:DerivativesPolicyTextBlock>
    <us-gaap:DerivativeLiabilities
      contextRef="ibd84e32f1d50494ba06c42d6cadaac69_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfOTYwNw_82170844-2b2a-48f7-bc0e-1048fff07a9a"
      unitRef="usd">37000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="i74f0beee727c418492000a655d1eda57_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfNjU5NzA2OTc5MjA0Mw_afa22a8e-106b-45cf-a5f1-52a1686c1194"
      unitRef="usd">56000</us-gaap:DerivativeLiabilities>
    <us-gaap:CompensationRelatedCostsPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwMzg_04643770-eda7-4d9d-9636-727a15d7b0af">Stock-based CompensationWe&#160;measure the cost of equity&#x2011;based awards based on the grant&#160;date fair value and allocate the compensation expense over the requisite service period, which is usually the vesting period. Beginning with our 2021 grants, the grant date fair value is determined by the closing price of our Class A common stock on the grant date.&#160;Prior to 2021, the grant date fair value was determined by the average price of the trading high and trading low of our Class A common stock on the grant date.</us-gaap:CompensationRelatedCostsPolicyTextBlock>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNTI_86cfc797-a6d8-4b0c-a21e-0f96e8123b64">&lt;div style="margin-bottom:12pt"&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;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred taxes are recorded using the asset and liability method, whereby tax assets and liabilities are determined based on the differences between the financial statement and tax basis of assets and liabilities using enacted tax laws and rates expected to apply to taxable income in the&#160;year in which the differences are expected to reverse. We regularly evaluate the valuation allowances established for deferred tax assets for which future realization is uncertain. In assessing the realizability of deferred tax assets, we consider both positive and negative evidence, including scheduled reversals of deferred tax assets and liabilities, projected future taxable income, tax planning strategies and results of recent operations. If, based on the weight of available evidence, it is more likely than not that the deferred tax assets will not be realized, a valuation allowance is recorded.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cactus Inc. is a corporation and is subject to U.S. federal as well as state income tax related to its ownership percentage in Cactus LLC. Cactus LLC is a limited liability company treated as a partnership for U.S. federal income tax &lt;/span&gt;&lt;/div&gt;purposes and files a U.S. Return of Partnership Income, which includes both our U.S. and foreign operations. Consequently, the members of Cactus LLC are taxed individually on their share of earnings for U.S. federal and state income tax purposes. However, Cactus LLC is subject to the Texas Margins Tax. Additionally, our operations in both Australia and China are subject to local country income taxes.&#160;See Note 5 &#x201c;Income Taxes&#x201d; for additional information regarding income taxes.</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNDk_7f73179b-ccc7-4ee6-a220-c31ed3ea7a88">&lt;div style="margin-bottom:12pt"&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;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash in excess of current operating requirements is invested in short-term interest-bearing&#160;investments with maturities of three months or less at the date of purchase and is stated at cost, which approximates fair value. Throughout the&#160;year we maintained cash balances that were not covered by federal deposit insurance. We have not experienced any losses in such accounts.&lt;/span&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwMzQ_5aa7a852-2d62-4fb5-8fff-98ad933a711c">&lt;div style="margin-bottom:12pt"&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;Accounts Receivable and Allowance for Credit Losses&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We extend credit to customers in the normal course of business. Our customers are predominantly oil and gas companies in the United States. Our receivables are short-term in nature and typically due in 30 to 45 days. We do not accrue interest on delinquent receivables. Accounts receivable includes amounts billed and currently due from customers and unbilled amounts for products delivered and services performed for which billings had not yet been submitted to the customers. Total unbilled revenue included in accounts receivable as of December&#160;31, 2021 and 2020 was $24.1 million and $8.7 million, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We maintain an allowance for credit losses to provide for the amount of billed receivables we believe to be at risk of loss. In our determination of the allowance for credit losses, we pool receivables with similar risk characteristics based on customer size, credit ratings, payment history, bankruptcy status and other factors known to us and apply an expected credit loss percentage. The expected credit loss percentage is determined using historical loss data adjusted for current conditions and forecasts of future economic conditions. Accounts deemed uncollectible are applied against the allowance for credit losses. The following is a rollforward of our allowance for credit losses:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:61.034%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&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:7.818%"/&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:7.818%"/&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:7.822%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance at Beginning of Period&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:8pt;font-weight:700;line-height:100%"&gt;Expense&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:8pt;font-weight:700;line-height:100%"&gt;Write&#160;off&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:8pt;font-weight:700;line-height:100%"&gt;Balance at End of Period&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;Year Ended December 31, 2021&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;598&#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;310&#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;(167)&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;741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2020&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;837&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(581)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;598&#160;&lt;/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;Year Ended December 31, 2019&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;576&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(94)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;837&#160;&lt;/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:TradeAndOtherAccountsReceivablePolicy>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTI1OTk_5f313fdd-0e00-450f-a975-bf4efd125ad9"
      unitRef="usd">24100000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTI2MDY_9a8f1f22-56e7-45f4-a0b0-a8864a3cce60"
      unitRef="usd">8700000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNTk_6dd08d32-b042-40a5-9a38-984487abccb3">The following is a rollforward of our allowance for credit losses:&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:61.034%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&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:7.818%"/&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:7.818%"/&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:7.822%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance at Beginning of Period&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:8pt;font-weight:700;line-height:100%"&gt;Expense&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:8pt;font-weight:700;line-height:100%"&gt;Write&#160;off&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:8pt;font-weight:700;line-height:100%"&gt;Balance at End of Period&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;Year Ended December 31, 2021&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;598&#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;310&#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;(167)&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;741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2020&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;837&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(581)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;598&#160;&lt;/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;Year Ended December 31, 2019&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;576&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(94)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;837&#160;&lt;/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;</us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMS0xLTEtMS0xNzI4NQ_6a6cb143-6f76-4752-87d0-1cef50c2de30"
      unitRef="usd">598000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMS0zLTEtMS0xNzI4NQ_92e56719-f837-492c-b8de-84ef197d5087"
      unitRef="usd">310000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMS01LTEtMS0xNzI4NQ_badda2a1-27c3-4579-bd2c-2312956bf5f3"
      unitRef="usd">167000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMS03LTEtMS0xNzI4NQ_4cb66ab1-6497-4592-a4a0-98b3266dcf4f"
      unitRef="usd">741000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="ife2d6f3fae2b4e39891dddc47374ddeb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMi0xLTEtMS0xNzI4NQ_46f0f37c-c515-4ab6-96ec-d9d065cd76dc"
      unitRef="usd">837000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMi0zLTEtMS0xNzI4NQ_e96d95c4-e456-401e-a66c-d5a976f0e1aa"
      unitRef="usd">342000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMi01LTEtMS0xNzI4NQ_dcd9e2e0-7f33-45b2-908b-994196e6f37e"
      unitRef="usd">581000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMi03LTEtMS0xNzI4NQ_bbee22ec-214a-4a9f-8778-9c362529cf87"
      unitRef="usd">598000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="ibab9af5359784af9b4f85cfd55a31cab_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMy0xLTEtMS0xNzI4NQ_feacc236-0671-4aef-952c-765215000413"
      unitRef="usd">576000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMy0zLTEtMS0xNzI4NQ_7bb12524-70f5-489e-8bfb-af457d62eaa6"
      unitRef="usd">355000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMy01LTEtMS0xNzI4NQ_883d9f50-6946-40ff-8347-69dbd4754be0"
      unitRef="usd">94000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="ife2d6f3fae2b4e39891dddc47374ddeb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJlYmU2YTYzZmY3OTQ1YTZiMDBmY2E3NzQ5ZTJiMzk2L3RhYmxlcmFuZ2U6MmViZTZhNjNmZjc5NDVhNmIwMGZjYTc3NDllMmIzOTZfMy03LTEtMS0xNzI4NQ_30f3c4e6-3d91-446f-8f10-788395124a88"
      unitRef="usd">837000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwMzk_2b9cc655-6116-49b3-8da7-c921d5c7bfb8">&lt;div style="margin-bottom:12pt"&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;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&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. Cost is determined using standard cost (which approximates average cost) and weighted average methods. Costs include an application of related direct labor, duties, tariffs, freight and overhead costs. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal and transportation. Reserves are made for excess and obsolete items based on a range of factors, including age, usage and technological or market changes that may impact demand for those products. The inventory obsolescence reserve was $18.0 million and $14.6 million as of December&#160;31, 2021 and 2020, respectively.&#160;The following is a rollforward of our inventory obsolescence reserve:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:48.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&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:8.841%"/&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:7.818%"/&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:8.987%"/&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:8.116%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance at Beginning of Period&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:8pt;font-weight:700;line-height:100%"&gt;Expense&#160;&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:8pt;font-weight:700;line-height:100%"&gt;Write&#160;off&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:8pt;font-weight:700;line-height:100%"&gt;Translation Adjustments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance at End of Period&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;Year Ended December 31, 2021&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;14,637&#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;3,490&#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;(62)&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;(53)&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,012&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2020&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;9,772&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;4,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(53)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;14,637&#160;&lt;/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;Year Ended December 31, 2019&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;7,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,552&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(90)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;9,772&#160;&lt;/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:InventoryPolicyTextBlock>
    <us-gaap:InventoryValuationReserves
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTM5NTY_199133e4-b5c7-4e14-9c66-218d4b94817f"
      unitRef="usd">18000000.0</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTM5NjM_18efc4ec-6352-4416-9278-b3d6fe388dd9"
      unitRef="usd">14600000</us-gaap:InventoryValuationReserves>
    <whd:RollforwardOfInventoryObsolescenceReserveTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNDQ_108ce4d7-d80a-416e-a19b-9e5e02d33a03">The following is a rollforward of our inventory obsolescence reserve:&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:48.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&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:8.841%"/&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:7.818%"/&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:8.987%"/&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:8.116%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance at Beginning of Period&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:8pt;font-weight:700;line-height:100%"&gt;Expense&#160;&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:8pt;font-weight:700;line-height:100%"&gt;Write&#160;off&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:8pt;font-weight:700;line-height:100%"&gt;Translation Adjustments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance at End of Period&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;Year Ended December 31, 2021&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;14,637&#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;3,490&#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;(62)&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;(53)&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,012&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2020&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;9,772&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;4,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(53)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;14,637&#160;&lt;/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;Year Ended December 31, 2019&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;7,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,552&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(90)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;9,772&#160;&lt;/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;</whd:RollforwardOfInventoryObsolescenceReserveTableTextBlock>
    <us-gaap:InventoryValuationReserves
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMS0xLTEtMS0xNzI4NQ_8d97cedf-2446-4e08-9686-5f5aa0c4d540"
      unitRef="usd">14637000</us-gaap:InventoryValuationReserves>
    <whd:InventoryObsolescenceReservesExpenseRecoveries
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMS0zLTEtMS0xNzI4NQ_54d02d6c-d045-4cff-8f92-2720fd26cdb6"
      unitRef="usd">3490000</whd:InventoryObsolescenceReservesExpenseRecoveries>
    <whd:InventoryObsolescenceReservesWriteOffs
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMS01LTEtMS0xNzI4NQ_f91ea43a-539a-48ec-babf-93a45b580799"
      unitRef="usd">62000</whd:InventoryObsolescenceReservesWriteOffs>
    <whd:InventoryObsolescenceReservesTranslationAdjustments
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMS03LTEtMS0xNzI4NQ_406fe699-f91e-4320-b1ea-d8d0fd468e4c"
      unitRef="usd">53000</whd:InventoryObsolescenceReservesTranslationAdjustments>
    <us-gaap:InventoryValuationReserves
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMS05LTEtMS0xNzI4NQ_b7ad3e66-b308-4806-ae9a-865aa3bd99aa"
      unitRef="usd">18012000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="ife2d6f3fae2b4e39891dddc47374ddeb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMi0xLTEtMS0xNzI4NQ_515419eb-51b9-46eb-a950-3893a6f4efea"
      unitRef="usd">9772000</us-gaap:InventoryValuationReserves>
    <whd:InventoryObsolescenceReservesExpenseRecoveries
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMi0zLTEtMS0xNzI4NQ_758d2319-633d-416d-9d72-2d02aa8d08b4"
      unitRef="usd">4840000</whd:InventoryObsolescenceReservesExpenseRecoveries>
    <whd:InventoryObsolescenceReservesWriteOffs
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMi01LTEtMS0xNzI4NQ_8744cd56-c476-4ca9-971e-160d6102213c"
      unitRef="usd">53000</whd:InventoryObsolescenceReservesWriteOffs>
    <whd:InventoryObsolescenceReservesTranslationAdjustments
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMi03LTEtMS0xNzI4NQ_da824c7b-32f2-4a7f-b154-abc410bf2698"
      unitRef="usd">-78000</whd:InventoryObsolescenceReservesTranslationAdjustments>
    <us-gaap:InventoryValuationReserves
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMi05LTEtMS0xNzI4NQ_686378bd-3a79-4878-b9cf-cc600e9d66bf"
      unitRef="usd">14637000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="ibab9af5359784af9b4f85cfd55a31cab_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMy0xLTEtMS0xNzI4NQ_8c2d9cfe-b06a-4077-932c-8cbcd39cd42e"
      unitRef="usd">7310000</us-gaap:InventoryValuationReserves>
    <whd:InventoryObsolescenceReservesExpenseRecoveries
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMy0zLTEtMS0xNzI4NQ_fbda0f1d-aede-4286-a129-578649e8c5e8"
      unitRef="usd">2552000</whd:InventoryObsolescenceReservesExpenseRecoveries>
    <whd:InventoryObsolescenceReservesWriteOffs
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMy01LTEtMS0xNzI4NQ_36c0e14a-16ec-4f03-a73d-e32ad1c9845f"
      unitRef="usd">90000</whd:InventoryObsolescenceReservesWriteOffs>
    <whd:InventoryObsolescenceReservesTranslationAdjustments
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMy03LTEtMS0xNzI4NQ_a98d18ec-fe20-4514-9fda-ada52b23c0db"
      unitRef="usd">0</whd:InventoryObsolescenceReservesTranslationAdjustments>
    <us-gaap:InventoryValuationReserves
      contextRef="ife2d6f3fae2b4e39891dddc47374ddeb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmEyNjUwNWI4YzdmZTRlMTJhZWFiZjBiNjFhNzFiOTYwL3RhYmxlcmFuZ2U6YTI2NTA1YjhjN2ZlNGUxMmFlYWJmMGI2MWE3MWI5NjBfMy05LTEtMS0xNzI4NQ_145a5f17-dc35-457a-ad13-bf4f00d86541"
      unitRef="usd">9772000</us-gaap:InventoryValuationReserves>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwMzU_18bea2f4-1601-419d-aa08-838b97a71101">&lt;div style="margin-bottom:12pt"&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;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment are stated at cost. We manufacture or construct most of our own rental assets and during the manufacture of these assets, they are reflected as construction in progress until complete. We depreciate the cost of property and equipment using the straight&#x2011;line method over the estimated useful lives and depreciate our rental assets to their salvage value. Leasehold improvements are amortized over the shorter of the remaining lease term or economic life of the related assets. When assets are retired or otherwise disposed of, the cost and related accumulated depreciation are removed from the accounts and &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;any resulting gain or loss are reflected in income for the period. The cost of maintenance and repairs is charged to income as incurred; significant renewals and improvements are capitalized. Estimated useful lives are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&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:84.090%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:1.979%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.706%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.419%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:5.206%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Land&lt;/span&gt;&lt;/td&gt;&lt;td colspan="12" 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;N/A&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;Buildings and improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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: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;30&lt;/span&gt;&lt;/td&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;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;Machinery and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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: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;12&lt;/span&gt;&lt;/td&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;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;Vehicles under finance lease&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: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&lt;/span&gt;&lt;/td&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;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;Rental equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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: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;11&lt;/span&gt;&lt;/td&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;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;Furniture and fixtures&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: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;5&lt;/span&gt;&lt;/td&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;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;Computers and software&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: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;4&lt;/span&gt;&lt;/td&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;years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment as of December&#160;31, 2021 and 2020 consists of the following:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;Land&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;3,203&#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;3,203&#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 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;Buildings and improvements&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;22,532&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;21,935&#160;&lt;/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;Machinery and equipment&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;56,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;57,726&#160;&lt;/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;Vehicles under finance lease&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,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;14,371&#160;&lt;/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;Rental equipment&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;180,704&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;172,012&#160;&lt;/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;Furniture and fixtures&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,755&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,780&#160;&lt;/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;Computers and software&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,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Gross property and equipment&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;292,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;274,557&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Accumulated depreciation&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;(175,992)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(147,221)&lt;/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;Net property and equipment&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;116,084&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;127,336&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Construction in progress&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;13,033&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;15,489&#160;&lt;/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;Total property and equipment, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;129,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;142,825&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depreciation and amortization was $36.3 million, $40.5 million and $38.9 million for 2021, 2020 and 2019, respectively. Depreciation and amortization expense is included in the consolidated statements of income as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;3,176&#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;3,506&#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;3,304&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of rental revenue&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;25,812&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;28,063&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,881&#160;&lt;/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;Cost of field service and other revenue&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;6,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;8,075&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,986&#160;&lt;/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;Selling, general and administrative expenses&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;457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;683&#160;&lt;/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 depreciation and amortization&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;36,308&#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;40,520&#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;38,854&#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:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNTU_bd7ffdd0-3908-4142-8c60-8582d241dfcb">Estimated useful lives are as follows:&lt;div style="margin-bottom:12pt;margin-top:5pt"&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:84.090%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:1.979%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.706%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.419%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:5.206%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Land&lt;/span&gt;&lt;/td&gt;&lt;td colspan="12" 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;N/A&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;Buildings and improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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: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;30&lt;/span&gt;&lt;/td&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;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;Machinery and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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: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;12&lt;/span&gt;&lt;/td&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;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;Vehicles under finance lease&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: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&lt;/span&gt;&lt;/td&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;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;Rental equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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: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;11&lt;/span&gt;&lt;/td&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;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;Furniture and fixtures&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: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;5&lt;/span&gt;&lt;/td&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;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;Computers and software&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: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;4&lt;/span&gt;&lt;/td&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;years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment as of December&#160;31, 2021 and 2020 consists of the following:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;Land&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;3,203&#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;3,203&#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 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;Buildings and improvements&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;22,532&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;21,935&#160;&lt;/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;Machinery and equipment&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;56,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;57,726&#160;&lt;/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;Vehicles under finance lease&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,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;14,371&#160;&lt;/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;Rental equipment&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;180,704&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;172,012&#160;&lt;/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;Furniture and fixtures&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,755&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,780&#160;&lt;/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;Computers and software&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,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Gross property and equipment&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;292,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;274,557&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Accumulated depreciation&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;(175,992)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(147,221)&lt;/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;Net property and equipment&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;116,084&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;127,336&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Construction in progress&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;13,033&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;15,489&#160;&lt;/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;Total property and equipment, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;129,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;142,825&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i183614ddfa9a42ea9a6822f25d83cdd5_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJkMjRkZjg2MTQ5MDRkMjZhMzBjZWJiZGU1MmRmNmQyL3RhYmxlcmFuZ2U6MmQyNGRmODYxNDkwNGQyNmEzMGNlYmJkZTUyZGY2ZDJfMS0xLTEtMS0xNzI4NQ_9499db2b-9c11-475b-af41-cada4f930faa">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i962e64dea5934a6b88151d5639b1455c_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJkMjRkZjg2MTQ5MDRkMjZhMzBjZWJiZGU1MmRmNmQyL3RhYmxlcmFuZ2U6MmQyNGRmODYxNDkwNGQyNmEzMGNlYmJkZTUyZGY2ZDJfMS0zLTEtMS0xNzI4NQ_c875d8c3-f082-4153-b958-f2aa61c6180a">P30Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i55a7df2e49b14406a9831af1d8e0ccce_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJkMjRkZjg2MTQ5MDRkMjZhMzBjZWJiZGU1MmRmNmQyL3RhYmxlcmFuZ2U6MmQyNGRmODYxNDkwNGQyNmEzMGNlYmJkZTUyZGY2ZDJfMi0xLTEtMS0xNzI4NQ_fc6f1e7d-bf34-450b-b153-e94e453fe1ac">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i54e64312a58746be95834495072e82b8_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJkMjRkZjg2MTQ5MDRkMjZhMzBjZWJiZGU1MmRmNmQyL3RhYmxlcmFuZ2U6MmQyNGRmODYxNDkwNGQyNmEzMGNlYmJkZTUyZGY2ZDJfMi0zLTEtMS0xNzI4NQ_0d324e9c-9ef8-4711-ad90-f9f798a77dac">P12Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i55f40ea9546747e0b0a649a1d7c501cc_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJkMjRkZjg2MTQ5MDRkMjZhMzBjZWJiZGU1MmRmNmQyL3RhYmxlcmFuZ2U6MmQyNGRmODYxNDkwNGQyNmEzMGNlYmJkZTUyZGY2ZDJfMy0zLTEtMS0xNzI4NQ_e33d64c1-911d-4a30-9fa6-95cf5cce3a73">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i8911b453a6ab4e27987e0e7b8d4f79f1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJkMjRkZjg2MTQ5MDRkMjZhMzBjZWJiZGU1MmRmNmQyL3RhYmxlcmFuZ2U6MmQyNGRmODYxNDkwNGQyNmEzMGNlYmJkZTUyZGY2ZDJfNC0xLTEtMS0xNzI4NQ_43ddf23a-8464-465f-951d-c7bb126ae6ee">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i814e2f65cf9149f7acf69a3235fe5d46_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJkMjRkZjg2MTQ5MDRkMjZhMzBjZWJiZGU1MmRmNmQyL3RhYmxlcmFuZ2U6MmQyNGRmODYxNDkwNGQyNmEzMGNlYmJkZTUyZGY2ZDJfNC0zLTEtMS0xNzI4NQ_60f7d693-012a-4b80-bec3-168a6b6f5bee">P11Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="if2d6b118446a43f5a27bff0c5fb5a439_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJkMjRkZjg2MTQ5MDRkMjZhMzBjZWJiZGU1MmRmNmQyL3RhYmxlcmFuZ2U6MmQyNGRmODYxNDkwNGQyNmEzMGNlYmJkZTUyZGY2ZDJfNS0zLTEtMS0xNzI4NQ_62875d03-cfae-4341-94fc-2cf5c3b54dd7">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i5791342f9d12428cb8c6cbd0e4f8f90f_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjJkMjRkZjg2MTQ5MDRkMjZhMzBjZWJiZGU1MmRmNmQyL3RhYmxlcmFuZ2U6MmQyNGRmODYxNDkwNGQyNmEzMGNlYmJkZTUyZGY2ZDJfNi0zLTEtMS0xNzI4NQ_986c456a-17b3-480e-b687-f9667d5ea935">P4Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i591e37750ebf4e4b99c760cf1ab95919_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMi0xLTEtMS0xNzI4NQ_b5250e44-07e6-42fd-b34a-c8beab6d48ad"
      unitRef="usd">3203000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i22fc0cbb12ea4a6784d2e8c7625bac58_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMi0zLTEtMS0xNzI4NQ_d044737c-7d48-4f8b-864c-467acd9d495f"
      unitRef="usd">3203000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ibc34297ee0bd4ad1897d8c2318b45e87_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMy0xLTEtMS0xNzI4NQ_7eb2f8da-6bf7-4808-9a8d-37666632cab8"
      unitRef="usd">22532000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i001d367c741f4d168879bcfdbc21d043_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMy0zLTEtMS0xNzI4NQ_bb3dd015-64c4-4e02-bf2d-715ee869fb27"
      unitRef="usd">21935000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i0a819f5d76704f61ba4c26b41a3aabfd_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfNC0xLTEtMS0xNzI4NQ_a3247fd6-c664-42e7-a179-a38eb8c501b3"
      unitRef="usd">56937000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i1e02660dea9e4e17824d47b288dd989c_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfNC0zLTEtMS0xNzI4NQ_38c2632a-6780-4bb8-8951-b6d29e3d8ee3"
      unitRef="usd">57726000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization
      contextRef="ifaa03ab3699845e2b922d794fb9d99b0_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfNS0xLTEtMS0xNzI4NQ_3a9a5fb7-4d37-4ec7-9052-e164b20fbfd5"
      unitRef="usd">23450000</us-gaap:FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization>
    <us-gaap:FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization
      contextRef="iae849b98fade42d0bde5a6e4c371851c_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfNS0zLTEtMS0xNzI4NQ_9e082e67-c0d7-4529-b119-6a298429662d"
      unitRef="usd">14371000</us-gaap:FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ib68c76aa4d8e4709bd0f3c5ce8d81da1_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfNi0xLTEtMS0xNzI4NQ_22b699f9-0f1e-4121-8164-37450a261642"
      unitRef="usd">180704000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i7c9587be059648399dd7de1c9058dc97_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfNi0zLTEtMS0xNzI4NQ_af2be373-7a59-4afa-921f-f9c99f8e2e8c"
      unitRef="usd">172012000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i75b209d8525f450f93dd35b109e268f2_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfNy0xLTEtMS0xNzI4NQ_4c4adbd9-1c77-44a5-bdb1-47ce09b8d39e"
      unitRef="usd">1755000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i9e10c4c1b48a46c4b2b84c642e789652_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfNy0zLTEtMS0xNzI4NQ_fda2bf12-8153-4d34-acaf-cfce895ea35c"
      unitRef="usd">1780000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i3a46cea3917143dfba3ee2cee02a0e81_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfOC0xLTEtMS0xNzI4NQ_2fdc789a-65b0-4478-b357-ae59b170d790"
      unitRef="usd">3495000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="idad733e516fe4fe8bff75bb195bba727_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfOC0zLTEtMS0xNzI4NQ_c7b7e154-3d64-4a25-ba55-6701db2c4a41"
      unitRef="usd">3530000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfOS0xLTEtMS0xNzI4NQ_519271a9-705e-4235-ba34-9826646ba6ec"
      unitRef="usd">292076000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfOS0zLTEtMS0xNzI4NQ_e7028335-fc3d-4ee9-90f3-ac548789a488"
      unitRef="usd">274557000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMTAtMS0xLTEtMTcyODU_d72d7878-b2ee-4021-af5c-14a7ce3febe5"
      unitRef="usd">175992000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMTAtMy0xLTEtMTcyODU_8cdd6e8c-8bb2-4054-96f2-c22b84446c4f"
      unitRef="usd">147221000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization>
    <whd:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortizationBeforeConstructionInProgress
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMTEtMS0xLTEtMTcyODU_0fb89005-2d6f-4c21-95b8-cc9362ea7f64"
      unitRef="usd">116084000</whd:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortizationBeforeConstructionInProgress>
    <whd:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortizationBeforeConstructionInProgress
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMTEtMy0xLTEtMTcyODU_62f70dac-69df-476c-960e-bf2f03096388"
      unitRef="usd">127336000</whd:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortizationBeforeConstructionInProgress>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="id17db54af007455db00adc1790ba837f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMTItMS0xLTEtMTcyODU_7a38192c-c867-43c6-aecc-de1f5321a13b"
      unitRef="usd">13033000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i89518a9c1418439dbfff4128764e9fdb_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMTItMy0xLTEtMTcyODU_80d1661b-abc4-4e7e-9e6d-86b2a47607c7"
      unitRef="usd">15489000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMTMtMS0xLTEtMTcyODU_dd24fe96-1cb3-4dad-b97d-45dbfcd41bb9"
      unitRef="usd">129117000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization>
    <us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjEyYWQzNTY4NzMwZTQxMDdhMTcxNjIyODljY2YwYTI4L3RhYmxlcmFuZ2U6MTJhZDM1Njg3MzBlNDEwN2ExNzE2MjI4OWNjZjBhMjhfMTMtMy0xLTEtMTcyODU_8a2d6915-9b6d-481e-8bf2-d09ed17cfd5d"
      unitRef="usd">142825000</us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTUwNTc_c4e55d15-5000-4399-8a84-52efac4671d6"
      unitRef="usd">36300000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTUwNjE_e3bb5d6d-412b-48f8-b4b1-b1e891e05e55"
      unitRef="usd">40500000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTUwNjg_f64b77c4-548f-4dc9-affc-8e53c66ffdcf"
      unitRef="usd">38900000</us-gaap:DepreciationDepletionAndAmortization>
    <whd:ScheduleOfDepreciationExpenseByStatementOfIncomeCaptionTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwMzc_9b1ac79b-437b-4e46-8bcf-c8dbec3ea805">Depreciation and amortization expense is included in the consolidated statements of income as follows:&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:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;3,176&#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;3,506&#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;3,304&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of rental revenue&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;25,812&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;28,063&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,881&#160;&lt;/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;Cost of field service and other revenue&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;6,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;8,075&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,986&#160;&lt;/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;Selling, general and administrative expenses&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;457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;683&#160;&lt;/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 depreciation and amortization&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;36,308&#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;40,520&#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;38,854&#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;</whd:ScheduleOfDepreciationExpenseByStatementOfIncomeCaptionTableTextBlock>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="iaf59edf0aeab4907b4c4adfc8707e847_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfMi0xLTEtMS0xNzI4NQ_e751b7b4-0b6e-4739-bed3-f164b9658620"
      unitRef="usd">3176000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="i08abb4da138a45058bd94bbb14bb4ff8_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfMi0zLTEtMS0xNzI4NQ_141d15a7-dbeb-45df-888d-4a713809cf1b"
      unitRef="usd">3506000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="i6186e198c38043f1a79e1c8000936cd0_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfMi01LTEtMS0xNzI4NQ_495211cd-ae48-49f3-8a99-a621c271be82"
      unitRef="usd">3304000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="i3415c6e4c0dc48e1bea8204206fbf3a6_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfMy0xLTEtMS0xNzI4NQ_ac38b6bc-2865-4520-b18c-65192e529527"
      unitRef="usd">25812000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="i7a1c40ec9c654ab289acd3e054f8f80a_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfMy0zLTEtMS0xNzI4NQ_ba0fcb5f-aae6-40c8-9094-e2f395411d81"
      unitRef="usd">28063000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="i3c9ff75b50894a56941a8efc6382a7c9_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfMy01LTEtMS0xNzI4NQ_6617cfc1-a2e7-4c6b-97e9-fe9d0a5e9735"
      unitRef="usd">24881000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="i2f020b22fb354ab1ba391e731adb340c_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfNC0xLTEtMS0xNzI4NQ_cd79e3cf-e96e-47e2-9f42-d66ff5a3363f"
      unitRef="usd">6863000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="i7eb3e7d9088d46ea97fe7a98c0c73c3a_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfNC0zLTEtMS0xNzI4NQ_b62fa4b5-5f20-4ac7-aaa3-de8c9fca621c"
      unitRef="usd">8075000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="ifc05c9b2701845deb1fc5881c4cb0e62_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfNC01LTEtMS0xNzI4NQ_03555bde-b1cd-4d1d-8dde-827e1f16faa3"
      unitRef="usd">9986000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:DepreciationNonproduction
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfNS0xLTEtMS0xNzI4NQ_1befb075-b808-4ac4-abf8-758555224c90"
      unitRef="usd">457000</us-gaap:DepreciationNonproduction>
    <us-gaap:DepreciationNonproduction
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfNS0zLTEtMS0xNzI4NQ_3d61efdd-97f6-42e8-a175-ca1b98f2a3c5"
      unitRef="usd">876000</us-gaap:DepreciationNonproduction>
    <us-gaap:DepreciationNonproduction
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfNS01LTEtMS0xNzI4NQ_30ea3325-0590-4e5b-bfd0-317dc2f79ca0"
      unitRef="usd">683000</us-gaap:DepreciationNonproduction>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfNi0xLTEtMS0xNzI4NQ_c3675137-d9c2-4f51-8c82-ca44fa282199"
      unitRef="usd">36308000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfNi0zLTEtMS0xNzI4NQ_5f950f95-0899-4291-b395-ab2b6e52b979"
      unitRef="usd">40520000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOmYxNDJlYjJkNTIyOTQ3ZDI4OTZlMGQzMGQ5YzdhZTRlL3RhYmxlcmFuZ2U6ZjE0MmViMmQ1MjI5NDdkMjg5NmUwZDMwZDljN2FlNGVfNi01LTEtMS0xNzI4NQ_8ab138c8-7b3c-4a84-aa14-50fed0c5b2db"
      unitRef="usd">38854000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNjE_25a583dd-6df7-4ecf-ab30-70af8351041d">&lt;div style="margin-bottom:12pt"&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;Impairment of Long&#x2011;Lived Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 the recoverability of long&#x2011;lived assets, such as property and equipment, when events or changes in circumstances occur that indicate the carrying value of the asset or asset group may not be recoverable. The assessment of possible impairment is based on our ability to recover the carrying value of the asset or asset group from the expected future pre&#x2011;tax cash flows (undiscounted) of the related operations. If these cash flows are less than the carrying value of such asset, an impairment loss is recognized for the difference between estimated fair value and carrying value. We concluded there were no indicators evident or other circumstances present that these assets were not recoverable and accordingly, no impairment charges of long&#x2011;lived assets were recognized for 2021. Due to reduced sales and cash flows in 2020, we assessed the recoverability of our long-lived assets at each interim period of 2020 and as of December 31, 2020. No impairments were recognized in 2020 as a result of these assessments. Additionally, no impairment charges of long&#x2011;lived assets were recognized in 2019.&lt;/span&gt;&lt;/div&gt;</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock>
    <us-gaap:ImpairmentOfLongLivedAssetsHeldForUse
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfNjU5NzA2OTc5MzI3Mw_2293ee6a-16e4-4999-8973-f63484e5cc12"
      unitRef="usd">0</us-gaap:ImpairmentOfLongLivedAssetsHeldForUse>
    <us-gaap:ImpairmentOfLongLivedAssetsHeldForUse
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTU5OTE_b6311c6a-f380-40bd-9563-088a681ec892"
      unitRef="usd">0</us-gaap:ImpairmentOfLongLivedAssetsHeldForUse>
    <us-gaap:ImpairmentOfLongLivedAssetsHeldForUse
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTYwNzg_6f8dd24f-51cb-42f2-8e8c-31cdae3dabfc"
      unitRef="usd">0</us-gaap:ImpairmentOfLongLivedAssetsHeldForUse>
    <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNjA_ad21e116-8c31-4924-8324-555c1ec59f7c">&lt;div style="margin-bottom:12pt"&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;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill represents the excess of purchase price paid over the fair value of the net assets of acquired businesses. Our goodwill resulted from the acquisition of a manufacturing facility in Bossier City, Louisiana in 2011. The facility supports our full range of products, rentals and services. Goodwill is not amortized, but we evaluate at least annually whether it is impaired. Goodwill is considered impaired if the carrying amount of the reporting unit exceeds its estimated fair value. We conduct our annual assessment of the recoverability of goodwill as of December&#160;31&#160;of each year. We first assess qualitative factors to determine whether it is more likely than not that the fair value of a reporting unit is less than its carrying amount as a basis for determining whether it is necessary to perform the goodwill impairment test. If the qualitative assessment indicates that it is more likely than not that the fair value of the reporting unit is less than its carrying amount or we elect not to perform a qualitative assessment, the quantitative assessment of goodwill test is performed. The goodwill impairment test is also performed whenever events or changes in circumstances indicate that the carrying value may not be recoverable. If it is necessary to perform the quantitative assessment to determine if our goodwill is impaired, we typically utilize a discounted cash flow analysis using management&#x2019;s projections that are subject to various risks and uncertainties of revenues, expenses and cash flows as well as assumptions regarding discount rates, terminal value and control premiums. Estimates of future cash flows and fair value are highly subjective and inherently imprecise. These estimates can change materially from period to period based on many factors. Accordingly, if conditions change in the future, we may record impairment losses, which could be material to any particular reporting period. &lt;/span&gt;&lt;/div&gt;No goodwill impairment losses were deemed necessary in 2021. Due to the depressed oil price environment, reduced sales and cash flow projections and a significant decline in our market capitalization as of March 31, 2020, we assessed whether our goodwill may have been impaired as of March 31, 2020. Our quantitative impairment test using management&#x2019;s current projections of revenues, expenses and cash flows as of March 31, 2020 calculated significant cushion and no impairment was recognized as a result of this assessment. Actual results during the remainder of the year were consistent with expectations and our forecasts had not materially changed; therefore, we concluded that our goodwill was not impaired at each subsequent interim period of 2020 and as of December 31, 2020. Additionally, no goodwill impairment losses were deemed necessary in 2019.</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfNjU5NzA2OTc5MzM1MA_6564ee4e-ff41-4c3d-8145-1f0c56702ef7"
      unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTg3MjQ_bbd2ed3c-13bc-4b0e-a818-6722140e1731"
      unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTg4MTE_8edbbdde-2748-4401-88f6-91ae044de519"
      unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <whd:AccruedExpensesAndOtherPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNTE_3671315b-ecef-43f1-a444-52d6a07490f2">&lt;div style="margin-bottom:12pt"&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;Accrued Expenses and Other Current Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued expenses and other current liabilities as of December&#160;31, 2021 and 2020 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.377%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.295%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued international freight and tariffs&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;14,794&#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;2,087&#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;Payroll, incentive compensation, payroll taxes and benefits&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;7,030&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;4,210&#160;&lt;/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;Deferred revenue&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,764&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,068&#160;&lt;/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;Taxes other than income&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,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income based tax payable&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,182&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,336&#160;&lt;/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;Accrued professional fees and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,078&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;687&#160;&lt;/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;Accrued dividends&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;346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;271&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Accrued workers&#x2019; compensation insurance&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;269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;text-align:left;vertical-align: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 warranties&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;136&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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 accrued expenses and other current liabilities&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;28,240&#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;11,392&#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-bottom:12pt;text-indent:36pt"&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;Self-Insurance Accrued Expenses&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We maintain a partially self-insured health benefit plan which provides medical and prescription drug benefits to certain of our employees electing coverage under the plan. Our exposure is limited by individual and aggregate stop loss limits through third-party insurance carriers.&#160;Our self-insurance expense is accrued based upon the aggregate of the expected liability for reported claims and the estimated liability for claims incurred but not reported, based on historical claims experience provided by our third-party insurance advisors, adjusted as necessary based upon management&#x2019;s reasoned judgment. Actual employee medical claims expense may differ from estimated loss provisions based on historical experience. The liabilities for these claims are included as a component of payroll, incentive compensation, payroll taxes and benefits in the table above and were $1.1 million and $1.3 million as of December&#160;31, 2021 and 2020, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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;Product Warranties&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We generally warrant our manufactured products for 12 months from the date placed in service. The estimated liability for product warranties is based on historical and current claims experience.&lt;/span&gt;&lt;/div&gt;</whd:AccruedExpensesAndOtherPolicyTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNDA_3048668b-dfa4-4fe6-9c51-c8eee193e02f">&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued expenses and other current liabilities as of December&#160;31, 2021 and 2020 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.377%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.295%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued international freight and tariffs&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;14,794&#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;2,087&#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;Payroll, incentive compensation, payroll taxes and benefits&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;7,030&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;4,210&#160;&lt;/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;Deferred revenue&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,764&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,068&#160;&lt;/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;Taxes other than income&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,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income based tax payable&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,182&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,336&#160;&lt;/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;Accrued professional fees and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,078&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;687&#160;&lt;/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;Accrued dividends&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;346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;271&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Accrued workers&#x2019; compensation insurance&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;269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;text-align:left;vertical-align: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 warranties&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;136&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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 accrued expenses and other current liabilities&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;28,240&#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;11,392&#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:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <whd:AccruedFreightInternationalCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfMi0xLTEtMS0yODM0Ng_94e72ae1-9f77-43ac-af01-d72d437ca2df"
      unitRef="usd">14794000</whd:AccruedFreightInternationalCurrent>
    <whd:AccruedFreightInternationalCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfMi0zLTEtMS0yODM0Ng_24842541-ec8a-4085-a92f-a78429124b1a"
      unitRef="usd">2087000</whd:AccruedFreightInternationalCurrent>
    <us-gaap:AccruedEmployeeBenefitsCurrentAndNoncurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfMi0xLTEtMS0xNzI4NQ_0cebb3bd-0a13-4bc5-be9a-bf6ecec5168d"
      unitRef="usd">7030000</us-gaap:AccruedEmployeeBenefitsCurrentAndNoncurrent>
    <us-gaap:AccruedEmployeeBenefitsCurrentAndNoncurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfMi0zLTEtMS0xNzI4NQ_f2613d87-0a7f-473f-a593-1e1e975414f6"
      unitRef="usd">4210000</us-gaap:AccruedEmployeeBenefitsCurrentAndNoncurrent>
    <us-gaap:ContractWithCustomerLiability
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfMy0xLTEtMS0xNzI4NQ_47a68a3b-8115-4156-853e-76e8168866e3"
      unitRef="usd">1764000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfMy0zLTEtMS0xNzI4NQ_762699fa-8a54-4569-a807-237109904021"
      unitRef="usd">1068000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:AccrualForTaxesOtherThanIncomeTaxesCurrentAndNoncurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfNS0xLTEtMS0yODM3NA_8a5fabcb-cb49-4d9a-86c6-5580e6dfcf34"
      unitRef="usd">1641000</us-gaap:AccrualForTaxesOtherThanIncomeTaxesCurrentAndNoncurrent>
    <us-gaap:AccrualForTaxesOtherThanIncomeTaxesCurrentAndNoncurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfNS0zLTEtMS0yODM3NA_533dd9b7-e87c-4280-a916-cfb79ebc0366"
      unitRef="usd">450000</us-gaap:AccrualForTaxesOtherThanIncomeTaxesCurrentAndNoncurrent>
    <us-gaap:AccruedIncomeTaxes
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfNC0xLTEtMS0xNzI4NQ_940f7cff-afb6-401e-94b3-0037e84e3007"
      unitRef="usd">1182000</us-gaap:AccruedIncomeTaxes>
    <us-gaap:AccruedIncomeTaxes
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfNC0zLTEtMS0xNzI4NQ_cce24b3f-0d86-404b-8dd4-06fbe062982d"
      unitRef="usd">2336000</us-gaap:AccruedIncomeTaxes>
    <us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfNi0xLTEtMS0xNzI4NQ_3ca93150-54a4-4b48-b0f1-5d20145e0caa"
      unitRef="usd">1078000</us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent>
    <us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfNi0zLTEtMS0xNzI4NQ_c2bbc1c6-a38b-4b64-a4ad-6b468269180b"
      unitRef="usd">687000</us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent>
    <us-gaap:DividendsPayableCurrentAndNoncurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfNy0xLTEtMS0xNzI4NQ_3c01c46e-bd2e-4540-aa05-96f8c20e8443"
      unitRef="usd">346000</us-gaap:DividendsPayableCurrentAndNoncurrent>
    <us-gaap:DividendsPayableCurrentAndNoncurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfNy0zLTEtMS0xNzI4NQ_c60cd46a-fc48-4131-85ef-69fd07fbb847"
      unitRef="usd">271000</us-gaap:DividendsPayableCurrentAndNoncurrent>
    <us-gaap:AccruedInsuranceCurrentAndNoncurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfOS0xLTEtMS0yODM5NQ_4a2f4143-b5d6-4df0-a921-628bf2bdb205"
      unitRef="usd">269000</us-gaap:AccruedInsuranceCurrentAndNoncurrent>
    <us-gaap:AccruedInsuranceCurrentAndNoncurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfOS0zLTEtMS0yODM5NQ_3697842b-1dbc-4f71-ba80-561f67703aba"
      unitRef="usd">0</us-gaap:AccruedInsuranceCurrentAndNoncurrent>
    <us-gaap:ProductWarrantyAccrual
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfOC0xLTEtMS0xNzI4NQ_01884a13-6bcb-45d3-822b-5f99b1119b1f"
      unitRef="usd">136000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrual
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfOC0zLTEtMS0xNzI4NQ_0cb753d9-05f2-436f-916e-b477a1bec79e"
      unitRef="usd">283000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:AccruedLiabilitiesCurrentAndNoncurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfMTEtMS0xLTEtMTcyODU_16f102ea-fb50-4d9c-b172-17300e03ce24"
      unitRef="usd">28240000</us-gaap:AccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedLiabilitiesCurrentAndNoncurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RhYmxlOjQ1NTU2ZmFhMjVjNDQ2Zjk4YmJjOGUxNDM2YjcyMzVkL3RhYmxlcmFuZ2U6NDU1NTZmYWEyNWM0NDZmOThiYmM4ZTE0MzZiNzIzNWRfMTEtMy0xLTEtMTcyODU_fc659272-4411-476f-92d9-70f527833b6e"
      unitRef="usd">11392000</us-gaap:AccruedLiabilitiesCurrentAndNoncurrent>
    <whd:SelfInsuranceAccruedExpenses
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTk5MDY_1a9f0e46-2c14-4c17-b187-383591ba3556"
      unitRef="usd">1100000</whd:SelfInsuranceAccruedExpenses>
    <whd:SelfInsuranceAccruedExpenses
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTk5MTM_9d8128ab-c035-48a3-a1c8-11e74e2be9ff"
      unitRef="usd">1300000</whd:SelfInsuranceAccruedExpenses>
    <whd:StandardProductWarrantyPeriod
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjAwMTc_2331d2cc-8adf-4295-b0a5-f1c9fe0696df">P12M</whd:StandardProductWarrantyPeriod>
    <us-gaap:FairValueMeasurementPolicyPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNjM_d9b1fee8-0c63-4f60-ad0f-42072de20fff">Fair Value MeasurementsAuthoritative guidance on fair value measurements provides a framework for measuring fair value and establishes a fair value hierarchy that prioritizes the inputs used to measure fair value, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1 inputs) and the lowest priority to unobservable inputs (Level 3 inputs). The carrying value of cash and cash equivalents, receivables, accounts payable and accrued expenses approximates fair value based on the short-term nature of these accounts. The fair value of our foreign currency forwards is determined using market observable inputs including forward and spot prices (Level 2 inputs). We had no long-term debt outstanding as of December&#160;31, 2021 or 2020.</us-gaap:FairValueMeasurementPolicyPolicyTextBlock>
    <us-gaap:LongTermDebt
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjA4ODc_2335e5ea-a47c-460f-ad5f-c433344bc536"
      unitRef="usd">0</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjA4ODc_52a9e12c-e890-46ee-acd5-95debfb71e84"
      unitRef="usd">0</us-gaap:LongTermDebt>
    <whd:EmployeeBenefitPlanPolicyPolicyTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjQwNjk_3cc082ac-3cd2-4470-8fa0-5cf67d07df64">&lt;div style="margin-bottom:12pt"&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;Employee Benefit Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our employees within the United States are eligible to participate in a 401(k)&#160;plan sponsored by us. These employees are eligible to participate on the first day of the month following 30 days of employment and if they are at least eighteen years of age. Eligible employees may contribute a&#160;percentage of their compensation subject to a maximum imposed by the Internal Revenue Code. Similar benefit plans exist for employees of our foreign subsidiaries. We match 100% of the first 3% of gross pay contributed by each employee and 50% of the next 4% of gross pay contributed by each employee and we may also make additional non&#x2011;elective employer contributions at our discretion under the plan. Due to the difficult economic environment at that time, the 401(k) match was temporarily suspended in the U.S. in June 2020 and reinstated in August 2021. During 2021, 2020 and 2019, employer matching contributions totaled $1.2 million, $1.6 million and $3.1 million, respectively. During the year ended December 31, 2019, a $0.1 million non-elective contribution was made under the 401(k) plan, whereas no such contributions were made in 2021 or 2020.&lt;/span&gt;&lt;/div&gt;</whd:EmployeeBenefitPlanPolicyPolicyTextBlock>
    <whd:DefinedContributionPlanEmployerMatchingContributionPercentOfMatchLevelOne
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjE0NDU_9bf61638-4fe0-46b1-aabd-fba6bda3ea08"
      unitRef="number">100</whd:DefinedContributionPlanEmployerMatchingContributionPercentOfMatchLevelOne>
    <whd:DefinedContributionPlanEmployerMatchingContributionPercentOfEmployeesGrossPayLevelOne
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjE0NjE_fb45c438-8e54-4a8f-b53f-60f27854a520"
      unitRef="number">3</whd:DefinedContributionPlanEmployerMatchingContributionPercentOfEmployeesGrossPayLevelOne>
    <whd:DefinedContributionPlanEmployerMatchingContributionPercentOfMatchLevelTwo
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjE1MTA_00602fa1-0294-4ab9-90b2-ac277224eeec"
      unitRef="number">50</whd:DefinedContributionPlanEmployerMatchingContributionPercentOfMatchLevelTwo>
    <whd:DefinedContributionPlanEmployerMatchingContributionPercentOfEmployeesGrossPayLevelTwo
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjE1MjU_32499690-f4ad-44cc-a2e8-304e2b1fd944"
      unitRef="number">4</whd:DefinedContributionPlanEmployerMatchingContributionPercentOfEmployeesGrossPayLevelTwo>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjE4NjI_f4ccc4da-0649-4071-b15a-3095535d859f"
      unitRef="usd">1200000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjE4NjY_4419fb39-063c-4df7-a78c-f00b75b5507d"
      unitRef="usd">1600000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMjE4NzM_41f8e7e3-3824-497e-ac2c-148c6bf4a324"
      unitRef="usd">3100000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfNjU5NzA2OTc5NTU2Mw_726728e8-a257-4c9f-8bc6-5bc4d3888fbc"
      unitRef="usd">100000</us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount>
    <us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTA5OTUxMTY1MTg3MA_10f1b9fe-d14c-42ca-98e0-d20b92f733e3"
      unitRef="usd">0</us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount>
    <us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN183OS9mcmFnOmNiN2Y0MTY4YWY1YjRhZjVhNDY4MjY2YjI4NjAzNWE1L3RleHRyZWdpb246Y2I3ZjQxNjhhZjViNGFmNWE0NjgyNjZiMjg2MDM1YTVfMTA5OTUxMTY1MTg3MA_84dbd438-ec8b-4654-99fc-6e07f56c5f99"
      unitRef="usd">0</us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184Mi9mcmFnOmEzMTQ3NmU0MzlmZjRjYTRiNTQ4ZTcxZWVlYTkyZGJhL3RleHRyZWdpb246YTMxNDc2ZTQzOWZmNGNhNGI1NDhlNzFlZWVhOTJkYmFfNTk_71f850de-ccb1-43e0-bc21-b3135ecec14f">Inventories&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories consist of the following:&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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,870&#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;2,003&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Work-in-progress&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;4,288&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,598&#160;&lt;/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;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;113,659&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,879&#160;&lt;/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;Total inventories&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;119,817&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;87,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184Mi9mcmFnOmEzMTQ3NmU0MzlmZjRjYTRiNTQ4ZTcxZWVlYTkyZGJhL3RleHRyZWdpb246YTMxNDc2ZTQzOWZmNGNhNGI1NDhlNzFlZWVhOTJkYmFfNjA_5dcb64f4-13d5-449e-875f-081757782b9b">&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories consist of the following:&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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,870&#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;2,003&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Work-in-progress&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;4,288&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,598&#160;&lt;/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;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;113,659&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,879&#160;&lt;/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;Total inventories&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;119,817&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;87,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterials
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184Mi9mcmFnOmEzMTQ3NmU0MzlmZjRjYTRiNTQ4ZTcxZWVlYTkyZGJhL3RhYmxlOmU1YTg3YzNkODMwMTRhMzViYWUxMTNjNGUzNmY1NmE2L3RhYmxlcmFuZ2U6ZTVhODdjM2Q4MzAxNGEzNWJhZTExM2M0ZTM2ZjU2YTZfMi0xLTEtMS0xNzI4NQ_c7af48ae-c41c-47da-8909-299129016c2b"
      unitRef="usd">1870000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184Mi9mcmFnOmEzMTQ3NmU0MzlmZjRjYTRiNTQ4ZTcxZWVlYTkyZGJhL3RhYmxlOmU1YTg3YzNkODMwMTRhMzViYWUxMTNjNGUzNmY1NmE2L3RhYmxlcmFuZ2U6ZTVhODdjM2Q4MzAxNGEzNWJhZTExM2M0ZTM2ZjU2YTZfMi0zLTEtMS0xNzI4NQ_62ee0e1d-1d0c-4ffb-a5bf-d10cb9558c66"
      unitRef="usd">2003000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryWorkInProcess
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184Mi9mcmFnOmEzMTQ3NmU0MzlmZjRjYTRiNTQ4ZTcxZWVlYTkyZGJhL3RhYmxlOmU1YTg3YzNkODMwMTRhMzViYWUxMTNjNGUzNmY1NmE2L3RhYmxlcmFuZ2U6ZTVhODdjM2Q4MzAxNGEzNWJhZTExM2M0ZTM2ZjU2YTZfMy0xLTEtMS0xNzI4NQ_b7a7ef33-bf66-4fa5-a986-ac4cfc9d1369"
      unitRef="usd">4288000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryWorkInProcess
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184Mi9mcmFnOmEzMTQ3NmU0MzlmZjRjYTRiNTQ4ZTcxZWVlYTkyZGJhL3RhYmxlOmU1YTg3YzNkODMwMTRhMzViYWUxMTNjNGUzNmY1NmE2L3RhYmxlcmFuZ2U6ZTVhODdjM2Q4MzAxNGEzNWJhZTExM2M0ZTM2ZjU2YTZfMy0zLTEtMS0xNzI4NQ_9154ea01-575c-4c90-abbd-e2774014eba8"
      unitRef="usd">3598000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryFinishedGoods
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184Mi9mcmFnOmEzMTQ3NmU0MzlmZjRjYTRiNTQ4ZTcxZWVlYTkyZGJhL3RhYmxlOmU1YTg3YzNkODMwMTRhMzViYWUxMTNjNGUzNmY1NmE2L3RhYmxlcmFuZ2U6ZTVhODdjM2Q4MzAxNGEzNWJhZTExM2M0ZTM2ZjU2YTZfNC0xLTEtMS0xNzI4NQ_4c16dc6c-2cf7-4411-84b6-c1ee64a82368"
      unitRef="usd">113659000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184Mi9mcmFnOmEzMTQ3NmU0MzlmZjRjYTRiNTQ4ZTcxZWVlYTkyZGJhL3RhYmxlOmU1YTg3YzNkODMwMTRhMzViYWUxMTNjNGUzNmY1NmE2L3RhYmxlcmFuZ2U6ZTVhODdjM2Q4MzAxNGEzNWJhZTExM2M0ZTM2ZjU2YTZfNC0zLTEtMS0xNzI4NQ_f76fa8d7-b877-45d9-b492-5a4030467a2b"
      unitRef="usd">81879000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryGross
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184Mi9mcmFnOmEzMTQ3NmU0MzlmZjRjYTRiNTQ4ZTcxZWVlYTkyZGJhL3RhYmxlOmU1YTg3YzNkODMwMTRhMzViYWUxMTNjNGUzNmY1NmE2L3RhYmxlcmFuZ2U6ZTVhODdjM2Q4MzAxNGEzNWJhZTExM2M0ZTM2ZjU2YTZfNS0xLTEtMS0xNzI4NQ_057c004d-2809-4ffe-a429-8909fadeb287"
      unitRef="usd">119817000</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184Mi9mcmFnOmEzMTQ3NmU0MzlmZjRjYTRiNTQ4ZTcxZWVlYTkyZGJhL3RhYmxlOmU1YTg3YzNkODMwMTRhMzViYWUxMTNjNGUzNmY1NmE2L3RhYmxlcmFuZ2U6ZTVhODdjM2Q4MzAxNGEzNWJhZTExM2M0ZTM2ZjU2YTZfNS0zLTEtMS0xNzI4NQ_6f70ddba-82c8-46b4-9b57-04edb7da3185"
      unitRef="usd">87480000</us-gaap:InventoryGross>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfNDczMw_6b0051c8-6bd0-4c51-ba27-ae8b298946c5">Debt&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We had no debt outstanding as of December&#160;31, 2021 and 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On August 21, 2018, Cactus LLC entered into a five-year senior secured asset-based revolving credit facility with a syndicate of lenders and JPMorgan Chase Bank, N.A., as administrative agent for such lenders and as an issuing bank and swingline lender (the &#x201c;ABL Credit Facility&#x201d;). The ABL Credit Facility provides for $75.0 million in revolving commitments, up to $15.0 million of which is available for the issuance of letters of credit. The ABL Credit Facility matures on August 21, 2023. The maximum amount that Cactus LLC may borrow under the ABL Credit Facility is subject to a borrowing base, which is based on a percentage of eligible accounts receivable and eligible inventory, subject to reserves and other adjustments.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The ABL Credit Facility was amended in September 2020 to incorporate certain changes related to revised and new definitions associated with alternative interest rates to LIBOR and satisfaction of payment conditions for restricted payments, investments, permitted acquisitions and asset dispositions. The amendment did not change covenants, the Alternate Base Rate, applicable margin rates, commitment fees, the maturity date or borrowing availability under the ABL Credit Facility.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Borrowings under the ABL Credit Facility bear interest at Cactus LLC&#x2019;s option at either (i) the Alternate Base Rate (as defined therein) (&#x201c;ABR&#x201d;), or (ii) the Adjusted LIBO Rate (as defined therein) (&#x201c;Eurodollar&#x201d;), plus, in each case, an applicable margin. Letters of credit issued under the ABL Credit Facility accrue fees at a rate equal to the applicable margin for Eurodollar &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;borrowings. The applicable margin ranges from 0.50% to 1.00% per annum for ABR borrowings and 1.50% to 2.00% per annum for Eurodollar borrowings and, in each case, is based on the average quarterly availability under the ABL Credit Facility for the immediately preceding fiscal quarter. The unused portion of the ABL Credit Facility is subject to a commitment fee that varies from 0.250% to 0.375% per annum, according to the average quarterly availability under the ABL Credit Facility for the immediately preceding fiscal quarter.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The ABL Credit Facility contains various covenants and restrictive provisions that limit Cactus LLC&#x2019;s and each of its subsidiaries&#x2019; ability to, among other things, incur additional indebtedness and create liens, make investments or loans,&#160;merge or consolidate with other companies, sell assets, make certain restricted payments and distributions, and engage in transactions with affiliates. The ABL Credit Facility also requires Cactus LLC to maintain a fixed charge coverage ratio of 1.0 to 1.0 based on the ratio of EBITDA (as defined therein) minus Unfinanced Capital Expenditures (as defined therein) to Fixed Charges (as defined therein) during certain periods, including when availability under the ABL Credit Facility is under certain levels. If Cactus LLC fails to perform its obligations under the ABL Credit Facility, (i) the commitments under the ABL Credit Facility could be terminated, (ii) any outstanding borrowings under the ABL Credit Facility may be declared immediately due and payable and (iii) the lenders may commence foreclosure or other actions against the collateral.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2021 and 2020, although there were no borrowings outstanding, the applicable margins on our Eurodollar borrowings were 1.50% and 1.75%, respectively, plus an adjusted base rate of one or three month LIBOR. We were in compliance with all covenants under the ABL Credit Facility&#160;as of December&#160;31, 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Interest (Income) Expense, net&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Interest (income) expense, net, including deferred financing cost amortization, was comprised of the following:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Interest under bank facilities&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;313&#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;317&#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;315&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;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;Deferred financing cost amortization&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;168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;168&#160;&lt;/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;Finance lease interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;877&#160;&lt;/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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;126&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;164&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Interest income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(353)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,828)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,403)&lt;/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;Interest (income) expense, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;774&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;(701)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;(879)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:LongTermDebt
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMTg_02059792-bc93-4d78-afe4-f64ef0ee2aab"
      unitRef="usd">0</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMTg_54c37290-6bbc-403a-90d5-4b38cfd919e0"
      unitRef="usd">0</us-gaap:LongTermDebt>
    <us-gaap:DebtInstrumentTerm
      contextRef="i65d611a1640a4a09bef2d13be0ba7ec4_D20180821-20180821"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfNDczNA_c7268761-06ec-47d4-b41e-eb98e8e577d3">P5Y</us-gaap:DebtInstrumentTerm>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="i8e01dc4092b24427aacde764f3a0d352_I20180821"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMzcy_8b618c1f-3cfc-42f9-a2f3-688cbf5a8726"
      unitRef="usd">75000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="ic7f846b4b4e245408abbd13f518326cd_I20180821"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfNDA3_aa051c77-165e-4d30-84b3-5e49b08844a3"
      unitRef="usd">15000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="ib9d299d0ea554bddbbb860770855dff7_D20210101-20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMTY2OA_1915cf83-6199-475f-8fc9-5cbe80c35e15"
      unitRef="number">0.0050</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="i438ca648e5ee407a982b90a9ad57de84_D20210101-20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMTY3NA_2b8a9295-cd5c-4548-9c35-b3cb4ba1d0ff"
      unitRef="number">0.0100</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="i7b95ebc1f7834ff6be31ba19244b6823_D20210101-20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMTcxMA_68a4a53b-aa75-4412-9edb-0f571e34ffa8"
      unitRef="number">0.0150</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="idf113ca48c5d4a46995dfda9acc93b5c_D20210101-20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMTcxNg_6ecd6f2b-4f05-4a69-87c1-6462f661c972"
      unitRef="number">0.0200</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:LineOfCreditFacilityCommitmentFeePercentage
      contextRef="i2b623fe43cdb4a548376af090f5e774d_D20210101-20211231"
      decimals="5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMTk5MQ_56c1fb4b-84d8-4678-aee1-1a349284c776"
      unitRef="number">0.00250</us-gaap:LineOfCreditFacilityCommitmentFeePercentage>
    <us-gaap:LineOfCreditFacilityCommitmentFeePercentage
      contextRef="i09f268e1bfde4c3db8ac8fbb723b515a_D20210101-20211231"
      decimals="5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMTk5Nw_06d82491-dbdd-4bfc-8da9-bb926731a50c"
      unitRef="number">0.00375</us-gaap:LineOfCreditFacilityCommitmentFeePercentage>
    <whd:DebtInstrumentFixedChargeCoverageRatio
      contextRef="iab0c96fe8f2c42ff9f3669d620ded20e_D20210101-20211231"
      decimals="1"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMjYyMA_95c8f4d2-096b-49fb-9e78-d210bc8f6338"
      unitRef="number">1.0</whd:DebtInstrumentFixedChargeCoverageRatio>
    <us-gaap:LongTermDebt
      contextRef="i94381f9d21ec42549993965092794065_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMzI2MQ_3e39dbb5-d1df-424b-8bd8-d5f93eedabd2"
      unitRef="usd">0</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="i6b1288c0d3ca43db89e99b0c1d62c9cb_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMzI2MQ_8c54379a-f414-4242-a707-e386d8a35580"
      unitRef="usd">0</us-gaap:LongTermDebt>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="i20746bab2cd548e6bebcc67c34f4bf18_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMzM0NQ_2a049e08-6a43-43e3-ad43-55be7072b14e"
      unitRef="number">0.0150</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="if65a69b841a940399ca6ea19f5814558_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMzM0NQ_2b01f9c9-5d5c-445f-b569-3a7cdc6c98cf"
      unitRef="number">0.0150</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="i805889d367eb4a2a900948c18a69ca5a_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMzM1Mg_1d67502d-0519-407c-a52f-b2549fee8910"
      unitRef="number">0.0175</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="if3bec20f9f3e4a7b864e324ba7311a26_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfMzM1Mg_ad2842c8-c25a-4264-8c9e-03e7728113d2"
      unitRef="number">0.0175</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:InterestIncomeAndInterestExpenseDisclosureTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RleHRyZWdpb246YTc4NmYxZjZlZjI1NDFlZWE0Y2YyY2ZiODQwNDRiYjRfNDczNg_ebb3981a-4640-4e0c-a574-d03402b17e78">&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Interest (income) expense, net, including deferred financing cost amortization, was comprised of the following:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Interest under bank facilities&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;313&#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;317&#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;315&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;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;Deferred financing cost amortization&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;168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;168&#160;&lt;/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;Finance lease interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;877&#160;&lt;/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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;126&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;164&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Interest income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(353)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,828)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,403)&lt;/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;Interest (income) expense, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;774&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;(701)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;(879)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InterestIncomeAndInterestExpenseDisclosureTableTextBlock>
    <us-gaap:InterestExpenseDebt
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfMi0xLTEtMS0xNzI4NQ_2ca08ba7-aaa7-4365-b467-09d464abf1be"
      unitRef="usd">313000</us-gaap:InterestExpenseDebt>
    <us-gaap:InterestExpenseDebt
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfMi0zLTEtMS0xNzI4NQ_4bbee3c2-3a7e-4eb3-9459-41ec76aad817"
      unitRef="usd">317000</us-gaap:InterestExpenseDebt>
    <us-gaap:InterestExpenseDebt
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfMi01LTEtMS0xNzI4NQ_5bead275-faef-48b0-aed4-33083b567498"
      unitRef="usd">315000</us-gaap:InterestExpenseDebt>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfMy0xLTEtMS0xNzI4NQ_a1a43b61-611e-4c5c-be7e-322380581790"
      unitRef="usd">168000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfMy0zLTEtMS0xNzI4NQ_4f310b87-fd27-47ef-a9bc-4dfa3213b5c8"
      unitRef="usd">168000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfMy01LTEtMS0xNzI4NQ_d1381231-a016-4694-8602-0e174467b979"
      unitRef="usd">168000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNC0xLTEtMS0xNzI4NQ_c16f20c5-c3d7-47fe-8a02-993a04e006f3"
      unitRef="usd">520000</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNC0zLTEtMS0xNzI4NQ_13ac930c-cfb5-4429-b573-cb112b361b7f"
      unitRef="usd">639000</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNC01LTEtMS0xNzI4NQ_67dc20c8-a2d0-45c0-a788-6bd0ffa518f1"
      unitRef="usd">877000</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:InterestExpenseOther
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNS0xLTEtMS0xNzI4NQ_2bfa6ee2-ba3e-4768-9484-d24e8a3c4d13"
      unitRef="usd">126000</us-gaap:InterestExpenseOther>
    <us-gaap:InterestExpenseOther
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNS0zLTEtMS0xNzI4NQ_610092d7-33ff-4eff-9f6c-ee7be64d693d"
      unitRef="usd">3000</us-gaap:InterestExpenseOther>
    <us-gaap:InterestExpenseOther
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNS01LTEtMS0xNzI4NQ_a7f30c41-bc26-4c15-adfa-9095ec9bc262"
      unitRef="usd">164000</us-gaap:InterestExpenseOther>
    <us-gaap:InterestIncomeOther
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNi0xLTEtMS0xNzI4NQ_2306c04b-0e37-468a-b324-94a69bcdd1b5"
      unitRef="usd">353000</us-gaap:InterestIncomeOther>
    <us-gaap:InterestIncomeOther
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNi0zLTEtMS0xNzI4NQ_9ef1f430-e9ee-4f86-85a2-cd8f6f9b6f02"
      unitRef="usd">1828000</us-gaap:InterestIncomeOther>
    <us-gaap:InterestIncomeOther
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNi01LTEtMS0xNzI4NQ_b3e4035c-5dd5-47b0-a98c-be52e2855d30"
      unitRef="usd">2403000</us-gaap:InterestIncomeOther>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNy0xLTEtMS0xNzI4NQ_275b01dc-3be6-40d6-b0b3-25c332d81f09"
      unitRef="usd">-774000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNy0zLTEtMS0xNzI4NQ_f3b0074e-627c-463d-bc16-8e3152b804dc"
      unitRef="usd">701000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184NS9mcmFnOmE3ODZmMWY2ZWYyNTQxZWVhNGNmMmNmYjg0MDQ0YmI0L3RhYmxlOjI1ZTg4MjRkYzYwZTQzMDM5NzIxYTM3NmY4MTdmZmUyL3RhYmxlcmFuZ2U6MjVlODgyNGRjNjBlNDMwMzk3MjFhMzc2ZjgxN2ZmZTJfNy01LTEtMS0xNzI4NQ_0d8a2f0c-6e81-4ee0-9f08-23ee521e3c1a"
      unitRef="usd">879000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzY2Ng_f3e85e55-3e14-4c38-bbb0-f036fcbacb3d">Income Taxes&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Domestic and foreign components of income before income taxes were as follows:&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Domestic&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;64,139&#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;61,028&#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;173,039&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,006&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,157&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;15,284&#160;&lt;/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;Income before income taxes&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;75,145&#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 #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;70,185&#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;188,323&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 consisted of:&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;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;&#160;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&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;text-indent:9pt;vertical-align: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;&#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;(786)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;1,088&#160;&lt;/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;text-indent:9pt;vertical-align: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&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;348&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;597&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,408&#160;&lt;/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;text-indent:9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,497&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;4,211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;4,121&#160;&lt;/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;text-indent:9pt;vertical-align: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 current income taxes&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;2,845&#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;4,022&#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;6,617&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;text-indent:9pt;vertical-align: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:#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,658&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;8,040&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;14,853&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;text-indent:9pt;vertical-align: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&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,516&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(253)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,681&#160;&lt;/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;text-indent:9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#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;656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(839)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(131)&lt;/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;text-indent:9pt;vertical-align: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 deferred income taxes&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;4,830&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,948&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;25,403&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;7,675&#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;10,970&#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;32,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt"&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;&#160;&#160;The effective income tax rate was different from the statutory U.S. federal income tax rate due to the following:&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income taxes at 21% statutory tax rate&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;15,780&#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;14,739&#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;39,548&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net difference resulting from:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 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;Profit of non-controlling interest not subject to U.S. federal tax&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,754)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,508)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(15,477)&lt;/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;Foreign income taxes (net of foreign tax credit)&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;2,423&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;364&#160;&lt;/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;State income taxes (excluding rate change)&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,348&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;883&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,887&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Impact of change in forecasted state income tax rate&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,347&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,216)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,774&#160;&lt;/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;Foreign withholding taxes&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;730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;988&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Change in valuation allowance&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;(8,977)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,888)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Adjustments of prior year taxes&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;79&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,663)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,336&#160;&lt;/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;Stock compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,096)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(34)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(762)&lt;/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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(205)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(750)&lt;/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;Total provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;7,675&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;10,970&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;32,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our effective tax rate was 10.2%, 15.6% and 17.0% for the years ended December&#160;31, 2021, 2020 and 2019, respectively.&#160;Our effective tax rate is typically lower than the federal statutory rate of 21% due to the fact that Cactus Inc. is only subject to federal and state income tax on its share of income from Cactus LLC. Income allocated to the non-controlling interest is not subject to U.S. federal or state tax.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 deferred tax assets and liabilities are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.377%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.295%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Investment in Cactus LLC&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;292,956&#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;224,485&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Imputed 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;12,297&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,333&#160;&lt;/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;Tax credits&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,713&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,719&#160;&lt;/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;Net operating loss carryforwards&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;11,198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,333&#160;&lt;/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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;152&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;546&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax assets&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;320,316&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;243,416&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Valuation allowance&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;(17,242)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(26,813)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax asset, net&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;303,074&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;216,603&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&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;Foreign withholding taxes&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;854&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;562&#160;&lt;/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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;318&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;224&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax liability, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;1,172&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 December&#160;31, 2021, our liability related to the TRA was $281.6 million, representing 85% of the calculated net cash savings in the United States federal, state and local and franchise tax that we anticipate realizing in future years from certain increases in tax basis and certain tax benefits attributed to imputed interest as a result of our acquisition of CW Units. We have determined it is more-likely-than-not that we will be able to utilize all of our tax basis subject to the TRA; therefore, we have recorded a liability related to the TRA for the tax savings we may realize from certain increases in tax basis and certain tax benefits attributable to imputed interest as a result of our acquisition (or deemed acquisition for United States federal income tax purposes) of CW Units.&#160;If we determine the utilization of this tax basis is not more-likely-than-not in the future, our estimate of amounts to be paid under the TRA would be reduced. In this scenario, the reduction of the liability under the TRA would result in a benefit to our pre-tax consolidated results of operations in conjunction with an increase to the valuation allowance and an offsetting adjustment to tax expense. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We record a deferred tax asset for the differences between our tax and book basis in the investment in Cactus LLC and imputed interest on the TRA. Based upon our cumulative earnings history and forecasted future sources of taxable income, we believe that we will be able to realize the majority of our U.S. deferred tax assets in the future. We do not expect to realize the portion of our deferred tax asset for our investment in Cactus LLC that may only be realizable through the sale or liquidation of the investment and our ability to generate sufficient capital gains. For the year ended December&#160;31, 2021, as a result of redemptions of CW Units, we released $9.0 million of our valuation allowance and recorded a tax benefit of $9.0 million related to the realizable portion of the deferred tax asset. As of December&#160;31, 2021, we have a valuation allowance of $13.5 million against the $293.0&#160;million deferred tax asset. During the year ended December 31, 2020, as a result of redemptions of CW Units, we released $0.1 million of our valuation allowance and recorded a tax benefit of $0.1 million related to the realizable portion of the deferred tax asset. As of December 31, 2020, we had a valuation allowance of $22.5 million against the $224.5&#160;million deferred tax asset. We also record deferred tax assets for imputed interest, certain tax credits and net operating loss carryforwards. As of December 31, 2021, we have a valuation allowance of $3.7 million against these deferred tax assets, primarily associated with our portion of Cactus LLC&#x2019;s accrued foreign taxes and state tax credits, due to uncertainty of realization.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 December&#160;31, 2021, we have deferred tax assets on U.S. federal and state net operating loss (&#x201c;NOL&#x201d;) carryforwards of approximately $10.4 million and $0.8 million, respectively, which can be used to offset U.S. federal and state taxes payable in future years. The U.S. federal NOL carryforwards have no expiration date whereas the U.S. state NOL carryforwards generally will expire in periods beginning in 2040.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 December&#160;31, 2021 and 2020, we had no uncertain tax positions. &#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;None of our federal or state income tax returns are currently under examination by state taxing authorities.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzY2MA_693f2463-efa0-4b6d-8f82-0619db419cdb">&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Domestic and foreign components of income before income taxes were as follows:&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Domestic&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;64,139&#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;61,028&#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;173,039&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,006&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,157&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;15,284&#160;&lt;/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;Income before income taxes&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;75,145&#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 #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;70,185&#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;188,323&#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:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjlkZjYzMDY0NDE2MzQwNGU5MjY2MjkwZmY0NWZiNmRmL3RhYmxlcmFuZ2U6OWRmNjMwNjQ0MTYzNDA0ZTkyNjYyOTBmZjQ1ZmI2ZGZfMi0xLTEtMS0xNzI4NQ_1601e394-f789-4ccd-ad8b-97f900850561"
      unitRef="usd">64139000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjlkZjYzMDY0NDE2MzQwNGU5MjY2MjkwZmY0NWZiNmRmL3RhYmxlcmFuZ2U6OWRmNjMwNjQ0MTYzNDA0ZTkyNjYyOTBmZjQ1ZmI2ZGZfMi0zLTEtMS0xNzI4NQ_e6019758-155d-4803-b5b2-a7c1f23c9bb1"
      unitRef="usd">61028000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjlkZjYzMDY0NDE2MzQwNGU5MjY2MjkwZmY0NWZiNmRmL3RhYmxlcmFuZ2U6OWRmNjMwNjQ0MTYzNDA0ZTkyNjYyOTBmZjQ1ZmI2ZGZfMi01LTEtMS0xNzI4NQ_aa406201-dea6-4d01-b52f-813a7303ce40"
      unitRef="usd">173039000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjlkZjYzMDY0NDE2MzQwNGU5MjY2MjkwZmY0NWZiNmRmL3RhYmxlcmFuZ2U6OWRmNjMwNjQ0MTYzNDA0ZTkyNjYyOTBmZjQ1ZmI2ZGZfMy0xLTEtMS0xNzI4NQ_c32ed149-b342-4f48-920c-1ed393a742f7"
      unitRef="usd">11006000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjlkZjYzMDY0NDE2MzQwNGU5MjY2MjkwZmY0NWZiNmRmL3RhYmxlcmFuZ2U6OWRmNjMwNjQ0MTYzNDA0ZTkyNjYyOTBmZjQ1ZmI2ZGZfMy0zLTEtMS0xNzI4NQ_00ade495-2159-4ef3-8612-00dced2c8697"
      unitRef="usd">9157000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjlkZjYzMDY0NDE2MzQwNGU5MjY2MjkwZmY0NWZiNmRmL3RhYmxlcmFuZ2U6OWRmNjMwNjQ0MTYzNDA0ZTkyNjYyOTBmZjQ1ZmI2ZGZfMy01LTEtMS0xNzI4NQ_c2a3f12e-3e76-43bd-ad51-29df08f6a80f"
      unitRef="usd">15284000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjlkZjYzMDY0NDE2MzQwNGU5MjY2MjkwZmY0NWZiNmRmL3RhYmxlcmFuZ2U6OWRmNjMwNjQ0MTYzNDA0ZTkyNjYyOTBmZjQ1ZmI2ZGZfNC0xLTEtMS0xNzI4NQ_eacdf355-fbb2-462b-85f8-9b2560a25fed"
      unitRef="usd">75145000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjlkZjYzMDY0NDE2MzQwNGU5MjY2MjkwZmY0NWZiNmRmL3RhYmxlcmFuZ2U6OWRmNjMwNjQ0MTYzNDA0ZTkyNjYyOTBmZjQ1ZmI2ZGZfNC0zLTEtMS0xNzI4NQ_823b6019-db37-49b3-806f-00df63a4a6a6"
      unitRef="usd">70185000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjlkZjYzMDY0NDE2MzQwNGU5MjY2MjkwZmY0NWZiNmRmL3RhYmxlcmFuZ2U6OWRmNjMwNjQ0MTYzNDA0ZTkyNjYyOTBmZjQ1ZmI2ZGZfNC01LTEtMS0xNzI4NQ_2d6e1269-66c0-4294-a973-44b9885e324c"
      unitRef="usd">188323000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzY2Nw_b034acab-7b25-4886-8fd4-c8bc6a347de3">&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 consisted of:&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;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;&#160;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&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;text-indent:9pt;vertical-align: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;&#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;(786)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;1,088&#160;&lt;/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;text-indent:9pt;vertical-align: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&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;348&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;597&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,408&#160;&lt;/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;text-indent:9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,497&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;4,211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;4,121&#160;&lt;/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;text-indent:9pt;vertical-align: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 current income taxes&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;2,845&#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;4,022&#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;6,617&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;text-indent:9pt;vertical-align: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:#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,658&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;8,040&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;14,853&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;text-indent:9pt;vertical-align: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&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,516&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(253)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,681&#160;&lt;/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;text-indent:9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#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;656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(839)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(131)&lt;/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;text-indent:9pt;vertical-align: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 deferred income taxes&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;4,830&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,948&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;25,403&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;7,675&#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;10,970&#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;32,020&#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:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMy0xLTEtMS0xNzI4NQ_3d1f6932-fe18-489d-95e2-4ea86cf851c1"
      unitRef="usd">0</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMy0zLTEtMS0xNzI4NQ_91a7f556-c9a2-4d53-9a21-5637b142cf21"
      unitRef="usd">-786000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMy01LTEtMS0xNzI4NQ_934a2b09-3c7f-43c8-8d32-d3bc37d03cc3"
      unitRef="usd">1088000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfNC0xLTEtMS0xNzI4NQ_0ab07b8d-377a-4957-97e7-20490850fe93"
      unitRef="usd">348000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfNC0zLTEtMS0xNzI4NQ_8f9c0f86-3bbd-4349-a239-6892d45588c5"
      unitRef="usd">597000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfNC01LTEtMS0xNzI4NQ_918dcb6a-b73a-468e-ae84-f4d9fc08eb13"
      unitRef="usd">1408000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfNS0xLTEtMS0xNzI4NQ_0e9cbf05-7b21-4084-8180-a046221f4035"
      unitRef="usd">2497000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfNS0zLTEtMS0xNzI4NQ_2e01f5b0-6707-4613-b645-b815979bd2e8"
      unitRef="usd">4211000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfNS01LTEtMS0xNzI4NQ_171ce961-d0e8-4f27-a20f-44ee34dda4c5"
      unitRef="usd">4121000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfNi0xLTEtMS0xNzI4NQ_b2c00312-8e70-47b0-8658-e2282003dd04"
      unitRef="usd">2845000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfNi0zLTEtMS0xNzI4NQ_21a87d5e-e251-4256-b483-05cef9878898"
      unitRef="usd">4022000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfNi01LTEtMS0xNzI4NQ_53744bac-1391-4703-b147-f76d4decae32"
      unitRef="usd">6617000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfOC0xLTEtMS0xNzI4NQ_ed54ab8b-a464-4df4-8560-218fdf29d586"
      unitRef="usd">2658000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfOC0zLTEtMS0xNzI4NQ_d5139ca9-5e11-40d5-a37e-fff25e419e13"
      unitRef="usd">8040000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfOC01LTEtMS0xNzI4NQ_cc2c19ff-09f9-4252-96a5-6a6d983374ff"
      unitRef="usd">14853000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfOS0xLTEtMS0xNzI4NQ_356f5368-477b-4ea3-a3c7-48b43e29bb79"
      unitRef="usd">1516000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfOS0zLTEtMS0xNzI4NQ_283a79ac-5da5-403f-b12a-716f842d8020"
      unitRef="usd">-253000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfOS01LTEtMS0xNzI4NQ_b4bfd40e-bb77-4cb2-ba85-e6ff0dafac83"
      unitRef="usd">10681000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMTAtMS0xLTEtMTcyODU_48c1a677-6908-436f-b3af-8f690e8b9747"
      unitRef="usd">656000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMTAtMy0xLTEtMTcyODU_e4a15e15-6731-414b-bca5-b48845a8f40a"
      unitRef="usd">-839000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMTAtNS0xLTEtMTcyODU_668058a1-5e4e-4482-b8db-2732a390382b"
      unitRef="usd">-131000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMTEtMS0xLTEtMTcyODU_e789a4fc-4136-4fe6-9516-97e36ad8d585"
      unitRef="usd">4830000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMTEtMy0xLTEtMTcyODU_1684b17f-37b3-472d-b4ca-d7a41c64c59f"
      unitRef="usd">6948000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMTEtNS0xLTEtMTcyODU_fadcb330-7686-4412-aff6-d5b7ff04fc3e"
      unitRef="usd">25403000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMTItMS0xLTEtMTcyODU_7a3edf39-bf78-4175-84a9-fc67dba30c23"
      unitRef="usd">7675000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMTItMy0xLTEtMTcyODU_844948b8-5854-4a04-bfdb-30430aed0290"
      unitRef="usd">10970000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjM5YTE4ZTVmZWYwNjRlMDJhZTE1YTUyZmFjZWIyZjVhL3RhYmxlcmFuZ2U6MzlhMThlNWZlZjA2NGUwMmFlMTVhNTJmYWNlYjJmNWFfMTItNS0xLTEtMTcyODU_77de0970-dacd-404d-a917-1ee06363abc5"
      unitRef="usd">32020000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzY1OA_a3006417-0e03-4df2-81db-e95d424f1aa6">The effective income tax rate was different from the statutory U.S. federal income tax rate due to the following:&#160;&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:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income taxes at 21% statutory tax rate&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;15,780&#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;14,739&#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;39,548&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net difference resulting from:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 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;Profit of non-controlling interest not subject to U.S. federal tax&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,754)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,508)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(15,477)&lt;/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;Foreign income taxes (net of foreign tax credit)&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;2,423&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;364&#160;&lt;/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;State income taxes (excluding rate change)&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,348&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;883&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,887&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Impact of change in forecasted state income tax rate&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,347&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,216)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,774&#160;&lt;/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;Foreign withholding taxes&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;730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;988&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Change in valuation allowance&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;(8,977)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,888)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Adjustments of prior year taxes&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;79&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,663)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,336&#160;&lt;/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;Stock compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,096)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(34)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(762)&lt;/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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(205)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(750)&lt;/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;Total provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;7,675&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;10,970&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;32,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMi0xLTEtMS0xNzI4NQ_3ab49e0c-81ad-4ba0-b2e9-dc6fb2ab9aec"
      unitRef="usd">15780000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMi0zLTEtMS0xNzI4NQ_7146ea2a-dd13-41ec-9c41-ab94989e714e"
      unitRef="usd">14739000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMi01LTEtMS0xNzI4NQ_576505ee-33b4-4e48-ac79-5b0739a4129b"
      unitRef="usd">39548000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationMinorityInterestIncomeExpense
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfNS0xLTEtMS0xNzI4NQ_65a1ffab-56b0-4eb5-bd66-454a53a05d61"
      unitRef="usd">3754000</us-gaap:IncomeTaxReconciliationMinorityInterestIncomeExpense>
    <us-gaap:IncomeTaxReconciliationMinorityInterestIncomeExpense
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfNS0zLTEtMS0xNzI4NQ_823dd6e1-6417-4be0-a027-6fc66aea5dbd"
      unitRef="usd">5508000</us-gaap:IncomeTaxReconciliationMinorityInterestIncomeExpense>
    <us-gaap:IncomeTaxReconciliationMinorityInterestIncomeExpense
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfNS01LTEtMS0xNzI4NQ_15bb75fc-1ecb-4e21-a339-676a4cf501bb"
      unitRef="usd">15477000</us-gaap:IncomeTaxReconciliationMinorityInterestIncomeExpense>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfNi0xLTEtMS0xNzI4NQ_eadec791-faed-44e1-8e3e-b4717ec84a9c"
      unitRef="usd">2423000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfNi0zLTEtMS0xNzI4NQ_78156193-4108-42f2-b6f4-a397a0475b31"
      unitRef="usd">269000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfNi01LTEtMS0xNzI4NQ_97007a23-5644-4be1-9108-872302f1e3b5"
      unitRef="usd">364000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfNy0xLTEtMS0xNzI4NQ_50a0053f-6b44-4ad9-b55c-d3acd8c15e1b"
      unitRef="usd">1348000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfNy0zLTEtMS0xNzI4NQ_28a0f53f-95db-4dd3-9b3a-f47d10227299"
      unitRef="usd">883000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfNy01LTEtMS0xNzI4NQ_ee91498e-5667-43f2-9408-dc7da7376b6a"
      unitRef="usd">4887000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <whd:EffectiveIncomeTaxRateReconciliationImpactOfChangeInForecastedStateIncomeTaxRateAmount
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfOC0xLTEtMS0xNzI4NQ_d12e8609-db7a-4d3c-8285-317b42f96271"
      unitRef="usd">1347000</whd:EffectiveIncomeTaxRateReconciliationImpactOfChangeInForecastedStateIncomeTaxRateAmount>
    <whd:EffectiveIncomeTaxRateReconciliationImpactOfChangeInForecastedStateIncomeTaxRateAmount
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfOC0zLTEtMS0xNzI4NQ_fd4a9913-f398-4dff-b0d6-710562384e96"
      unitRef="usd">-1216000</whd:EffectiveIncomeTaxRateReconciliationImpactOfChangeInForecastedStateIncomeTaxRateAmount>
    <whd:EffectiveIncomeTaxRateReconciliationImpactOfChangeInForecastedStateIncomeTaxRateAmount
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfOC01LTEtMS0xNzI4NQ_0b783a97-2a8d-470d-8cf4-65bbe0616b37"
      unitRef="usd">5774000</whd:EffectiveIncomeTaxRateReconciliationImpactOfChangeInForecastedStateIncomeTaxRateAmount>
    <whd:IncomeTaxReconciliationForeignWithholdingTax
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfOS0xLTEtMS0xNzI4NQ_c792e4da-12d4-4a26-b696-1cba66bd257a"
      unitRef="usd">730000</whd:IncomeTaxReconciliationForeignWithholdingTax>
    <whd:IncomeTaxReconciliationForeignWithholdingTax
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfOS0zLTEtMS0xNzI4NQ_e59e810f-3233-45f2-80a4-8258ace70ce7"
      unitRef="usd">462000</whd:IncomeTaxReconciliationForeignWithholdingTax>
    <whd:IncomeTaxReconciliationForeignWithholdingTax
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfOS01LTEtMS0xNzI4NQ_d58274ba-7d60-41a2-bc1f-ecc6708a605e"
      unitRef="usd">988000</whd:IncomeTaxReconciliationForeignWithholdingTax>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTAtMS0xLTEtMTcyODU_ac69fa56-17c8-4e80-8217-6acbed363a67"
      unitRef="usd">-8977000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTAtMy0xLTEtMTcyODU_bfa69fb8-bb27-4417-a461-fec7eec7e6ef"
      unitRef="usd">2840000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTAtNS0xLTEtMTcyODU_4da6c8c6-8417-4f9c-a8f7-c291d5afc0e3"
      unitRef="usd">-3888000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTEtMS0xLTEtMTcyODU_9ea50678-bb8d-47bc-a698-8a461a09aa95"
      unitRef="usd">79000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTEtMy0xLTEtMTcyODU_d4687cb0-d8c1-4e77-84b3-73002bdf767d"
      unitRef="usd">-1663000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTEtNS0xLTEtMTcyODU_dbb64411-611e-4fcc-b657-36d8fe80b905"
      unitRef="usd">1336000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTEtMS0xLTEtMjgzMTM_33242388-6382-4cf8-861e-6119580a816a"
      unitRef="usd">-1096000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTEtMy0xLTEtMjgzMTk_636ce87d-f099-4697-b1a1-b1336f7d0367"
      unitRef="usd">-34000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTEtNS0xLTEtMjgzMjU_444f723a-b5e2-4262-ba2b-398162179397"
      unitRef="usd">-762000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTItMS0xLTEtMTcyODU_d62d1c30-1507-4250-8947-6b6029a2681d"
      unitRef="usd">-205000</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTItMy0xLTEtMTcyODU_8f6aa0f7-63b9-4c03-8372-9732f5627996"
      unitRef="usd">198000</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTItNS0xLTEtMTcyODU_4dfca39e-c48a-4dc2-8123-b7a84aef24f8"
      unitRef="usd">-750000</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTMtMS0xLTEtMTcyODU_8f5f477c-e3a9-4cc3-9900-afea91ecd990"
      unitRef="usd">7675000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTMtMy0xLTEtMTcyODU_1fdc4b00-b69a-49ad-9bcd-2a8c6d0c326b"
      unitRef="usd">10970000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOjJlMDk1OGQ4YzgxMTRhM2FhNWViNjkxZDI5YTZmMDBmL3RhYmxlcmFuZ2U6MmUwOTU4ZDhjODExNGEzYWE1ZWI2OTFkMjlhNmYwMGZfMTMtNS0xLTEtMTcyODU_b0cfd8aa-7331-4b7e-8dc4-f478f77ca995"
      unitRef="usd">32020000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzgx_d6596514-fb87-471f-855e-832048833230"
      unitRef="number">0.102</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzg1_6e21a31a-41c8-459c-8c8a-f1259e17f79e"
      unitRef="number">0.156</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzky_6b5bd14e-baa3-45bb-9117-e6fd0a543c80"
      unitRef="number">0.170</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzY2NA_4c35c89c-f79b-406d-8cd5-dd7ef8ceb568">&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 deferred tax assets and liabilities are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.377%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.295%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Investment in Cactus LLC&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;292,956&#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;224,485&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Imputed 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;12,297&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,333&#160;&lt;/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;Tax credits&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,713&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,719&#160;&lt;/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;Net operating loss carryforwards&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;11,198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,333&#160;&lt;/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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;152&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;546&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax assets&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;320,316&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;243,416&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Valuation allowance&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;(17,242)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;(26,813)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax asset, net&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;303,074&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;216,603&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&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;Foreign withholding taxes&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;854&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;562&#160;&lt;/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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;318&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;224&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax liability, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;1,172&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsInvestmentInSubsidiaries
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfMi0xLTEtMS0xNzI4NQ_6f3e5244-0777-4e93-b708-f671204d0048"
      unitRef="usd">292956000</us-gaap:DeferredTaxAssetsInvestmentInSubsidiaries>
    <us-gaap:DeferredTaxAssetsInvestmentInSubsidiaries
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfMi0zLTEtMS0xNzI4NQ_4c4ef14f-be45-4863-b6ad-34e96bc55f2f"
      unitRef="usd">224485000</us-gaap:DeferredTaxAssetsInvestmentInSubsidiaries>
    <whd:DeferredTaxAssetsTaxDeferredImputedInterest
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfMy0xLTEtMS0xNzI4NQ_df04047a-a920-4af6-b800-c463329c53d4"
      unitRef="usd">12297000</whd:DeferredTaxAssetsTaxDeferredImputedInterest>
    <whd:DeferredTaxAssetsTaxDeferredImputedInterest
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfMy0zLTEtMS0xNzI4NQ_2112eb91-5742-43b8-9213-12a196b604cc"
      unitRef="usd">10333000</whd:DeferredTaxAssetsTaxDeferredImputedInterest>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfNC0xLTEtMS0xNzI4NQ_be1f4bb4-1bc7-48fc-a515-1d1f3e8ab5a0"
      unitRef="usd">3713000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfNC0zLTEtMS0xNzI4NQ_7c928dcc-b7e0-465d-a0ad-1f78c2fe8126"
      unitRef="usd">5719000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfNS0xLTEtMS0xNzI4NQ_ccb5afa9-d2f3-4da0-9618-ec83137ed6e9"
      unitRef="usd">11198000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfNS0zLTEtMS0xNzI4NQ_14fc8d1d-0251-420c-98d2-9f9927ed18b5"
      unitRef="usd">2333000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfNi0xLTEtMS0xNzI4NQ_971259ba-829d-4a64-afc2-be4ae2c38de0"
      unitRef="usd">152000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfNi0zLTEtMS0xNzI4NQ_c8a1fa04-2eae-41f8-ad8e-d9b990efebb5"
      unitRef="usd">546000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfNy0xLTEtMS0xNzI4NQ_a3897fdb-994e-4163-b35d-8449b7ac545e"
      unitRef="usd">320316000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfNy0zLTEtMS0xNzI4NQ_2f3cbf4f-fc1a-4349-ada9-0ed58c318aaf"
      unitRef="usd">243416000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfOC0xLTEtMS0xNzI4NQ_11fac9bc-a1b4-4ff9-aabe-a7e0ac21c4f8"
      unitRef="usd">17242000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfOC0zLTEtMS0xNzI4NQ_d29e7f7f-a620-4403-9e1d-ede8ea58c2d6"
      unitRef="usd">26813000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfOS0xLTEtMS0xNzI4NQ_c570f185-1a62-4249-9fb5-5be49fb827f8"
      unitRef="usd">303074000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfOS0zLTEtMS0xNzI4NQ_a4676eb6-23b1-4e5e-be22-c14d305c0127"
      unitRef="usd">216603000</us-gaap:DeferredTaxAssetsNet>
    <whd:DeferredTaxLiabilitiesForeignWithholdingTaxes
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfMTEtMS0xLTEtMTcyODU_a534f9d5-0fab-42ca-9ea0-907bad1cf8f5"
      unitRef="usd">854000</whd:DeferredTaxLiabilitiesForeignWithholdingTaxes>
    <whd:DeferredTaxLiabilitiesForeignWithholdingTaxes
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfMTEtMy0xLTEtMTcyODU_54dbfeb6-937f-493a-9847-804186951ab2"
      unitRef="usd">562000</whd:DeferredTaxLiabilitiesForeignWithholdingTaxes>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfMTItMS0xLTEtMTcyODU_61be6109-553c-4094-a131-b696fa845200"
      unitRef="usd">318000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfMTItMy0xLTEtMTcyODU_3bebfda9-738e-4682-a5bf-0da9cda5aae1"
      unitRef="usd">224000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfMTMtMS0xLTEtMTcyODU_d961e650-09da-438d-a673-f5283662b0f5"
      unitRef="usd">1172000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RhYmxlOmU4MDBmYjQ3MDhlZDQ4M2RhODI3N2RjZjgwNzZhZjUyL3RhYmxlcmFuZ2U6ZTgwMGZiNDcwOGVkNDgzZGE4Mjc3ZGNmODA3NmFmNTJfMTMtMy0xLTEtMTcyODU_29f22ce4-12a6-45c3-9ee6-5a50e18405d1"
      unitRef="usd">786000</us-gaap:DeferredIncomeTaxLiabilities>
    <whd:TaxReceivableAgreementLiability
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfODYw_4bb23646-f989-4a51-97d4-954cb78ca00e"
      unitRef="usd">281600000</whd:TaxReceivableAgreementLiability>
    <whd:TaxSavingsPayableToTraHoldersAsPercent
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfODc3_bb022b33-2401-4c58-9f4f-549ebacc3874"
      unitRef="number">0.85</whd:TaxSavingsPayableToTraHoldersAsPercent>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="ia1cad7a05fe546bf9755f0ea75c83bae_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMjYzMw_28b45cae-cee8-47f3-ad57-3995dfcc8b18"
      unitRef="usd">-9000000.0</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ia1cad7a05fe546bf9755f0ea75c83bae_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMjY5Mw_6823fda5-9770-4371-984b-bed7b4256dff"
      unitRef="usd">-9000000.0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i562c39793cae4b9db83532b594eb8483_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMjgwMA_e3dffe74-6ee7-451c-93e1-4ebe56671a3d"
      unitRef="usd">13500000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="i562c39793cae4b9db83532b594eb8483_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMjgxNQ_80fd39fa-1b9c-4486-9d4b-8f0c277053ee"
      unitRef="usd">293000000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="ia5325533457c495ca67f0272a7683609_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMjkzMQ_bd662272-22d3-461e-a4bc-707a23c5e44a"
      unitRef="usd">100000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ia5325533457c495ca67f0272a7683609_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMjk5MQ_9913f2e6-1c10-4c7d-aed6-a1afcffe2e72"
      unitRef="usd">-100000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i9cf201623c084003ae94d519f99a0338_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzExMg_ac4b8ed1-70a8-493f-8ab1-f7230764d2b5"
      unitRef="usd">22500000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="i9cf201623c084003ae94d519f99a0338_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzEyNw_bac88da5-9831-408f-893a-8d9eece6fcb3"
      unitRef="usd">224500000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i29b7bbced0e14773b2ad24819e388815_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzMyMw_c7e350ef-8496-411c-a9bb-5f4d6c4e3524"
      unitRef="usd">3700000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:OperatingLossCarryforwards
      contextRef="ifc718608ea02488b91d230273dc62c14_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMjc0ODc3OTA3NDE5NQ_a9158347-537e-4446-9b95-20d287ee02ed"
      unitRef="usd">10400000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="i51ad48c6e5ba4de9bda1ba4df6dd50a8_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMjc0ODc3OTA3NDE3Mw_4cd6dc57-e8a8-450d-b30e-5b644ee24026"
      unitRef="usd">800000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzUyMQ_6527404f-8e02-4578-bae6-c1e51dc68803"
      unitRef="usd">0</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN184OC9mcmFnOjdkNzFkZDhkN2M1ODQ4ZjlhNWM3OWNkNmI3OGE2YTBiL3RleHRyZWdpb246N2Q3MWRkOGQ3YzU4NDhmOWE1Yzc5Y2Q2Yjc4YTZhMGJfMzUyMQ_83aaed7b-8aae-4b46-991e-2a00577df2d3"
      unitRef="usd">0</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNDExNw_14c0feb6-6ea9-46b1-bdbc-8ee7c2af8009">Stock-Based CompensationWe have a long-term incentive plan (&#x201c;LTIP&#x201d;) that provides for the grant of various stock-based compensation awards at the discretion of our compensation committee of our board of directors. Employees and non-employee directors are eligible &lt;div style="margin-bottom:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;to receive awards under the LTIP. Stock-based awards granted pursuant to the LTIP are expected to be settled in shares of our Class A common stock if they vest. Our stock-based awards do not have voting rights prior to vesting. Dividends declared are accumulated and paid upon vesting. We account for forfeitures when they occur and recognize the impact to stock-based compensation expense at that time. We recorded $8.6 million of stock-based compensation expense during each of the years ended December&#160;31, 2021 and 2020 and $7.0 million during the year ended December 31, 2019. Stock-based compensation expense is primarily recorded in selling, general and administrative expenses. We recognized $1.1&#160;million, $34&#160;thousand and $0.8&#160;million in tax benefits for tax deductions from the vesting of stock-based awards benefits during the years ended December 31, 2021, 2020 and 2019, respectively. As of December&#160;31, 2021, 1.3&#160;million stock awards were available for grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Restricted Stock Units&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted stock units (&#x201c;RSUs&#x201d;) granted to our key employees generally vest over a three-year period (vesting ratably in equal tranches over a three-year period); however, RSUs granted to our non-employee directors generally vest on the first anniversary of the grant date. We recognize compensation expense over the requisite service period using straight-line amortization. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 our RSU activity during the year ended December&#160;31, 2021 (RSUs in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.560%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.911%"/&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.499%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;No. of RSUs&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:8pt;font-weight:700;line-height:100%"&gt;Weighted Average Grant Date Fair Value ($)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2020&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;757&#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;19.97&#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 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;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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.92&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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:#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;(447)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;20.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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:#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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;26.83&#160;&lt;/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;Nonvested as of December 31, 2021&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;476&#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;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;24.29&#160;&lt;/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-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; There was approximately $6.6 million of unrecognized compensation expense relating to the unvested RSUs as of December&#160;31, 2021. The unrecognized compensation expense will be recognized over the weighted average remaining vesting period of 1.8 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Performance Stock Units&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Performance stock units (&#x201c;PSUs&#x201d;) are granted to our executive officers. Under these awards, the number of shares vested and earned is currently determined at the end of a three-year performance period based on our Return on Capital Employed (&#x201c;ROCE&#x201d;). The number of shares earned may range from 0% to 200% of the target units set forth in the applicable award agreement and is determined at the end of the performance period conditioned upon continued service and on our achievement of certain predefined targets as defined in the underlying performance stock unit agreements. PSUs cliff vest upon conclusion of the three-year performance period. As the ROCE target represents a performance condition, we recognize compensation expense for the performance share units on a straight-line basis over three years based on the probable outcome of the ROCE performance.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2020, we granted PSU awards that contained a two-year performance period. Our ROCE performance did not meet the minimum requirements for vesting; therefore, those awards were forfeited as of December 31, 2021. As of December 31, 2020, we had not recognized compensation expense related to any of the 2020 awards as it was not probable that the minimum performance level would be achieved for each award as determined by the actual and forecasted ROCE performance over the applicable performance periods. In 2021, we recorded a cumulative catch-up of compensation expense for the three-year awards as it was probable that the minimum ROCE performance level will be achieved.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 our PSU activity during the year ended December&#160;31, 2021 (PSUs in thousands at their target values which assumes achievement of 100% of target):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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:71.560%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.911%"/&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.499%"/&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:8pt;font-weight:700;line-height:100%"&gt;No. of PSUs&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:8pt;font-weight:700;line-height:100%"&gt;Weighted Average Grant Date Fair Value ($)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;152&#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;13.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;74&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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.82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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:#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 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;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(28)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;13.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;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;Nonvested as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;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;198&#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;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;20.80&#160;&lt;/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;As of December 31, 2021, there was approximately $2.2 million of unrecognized compensation expense relating to the unvested PSUs (based on the grant date fair value of the awards at 100% of target) which is expected to be recognized over a weighted average period of 1.7 years.</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i0b569bb6b92244d1aeb04411ad0d6e41_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNzI3_a1db4d2d-c4c8-48e6-be74-460d35e6bc24"
      unitRef="usd">8600000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i90d119ebdbda45f28b170594e4423b92_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNzI3_fa476080-d110-47ab-8d43-c305bdeb084d"
      unitRef="usd">8600000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i934359bb83dd4c14839ab67ec31f16a4_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNzM4_3a5c182a-f7fc-4f22-ab48-9cc6f64f9ee7"
      unitRef="usd">7000000.0</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="iddc0e63b911043b1b91b753aaf5e19fe_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfOTEx_f8709bd7-e801-4d76-a0ac-2817c8b184b8"
      unitRef="usd">1100000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="i5ac63df8befd43aea1d3fd3fc59ac0be_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfOTE4_378152c7-011a-48b8-bcab-38e08a2f4688"
      unitRef="usd">34000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="i70b38f47561d450aa9d7470c3b6cbe95_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMTA2MA_80d12e24-f0ac-4d3c-a4c1-791423da2a63"
      unitRef="usd">800000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMTE1NQ_dbe9734d-9ef8-455f-b369-c3efd9168180"
      unitRef="shares">1300000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i8a940c6ead4046e69c70d41fabadeee5_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNDExOQ_c275f77a-e587-4b04-8599-42fc797a63a1">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNDEyMQ_99ccf810-509c-45af-9719-7d5c665ef348">&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 our RSU activity during the year ended December&#160;31, 2021 (RSUs in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.560%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.911%"/&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.499%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;No. of RSUs&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:8pt;font-weight:700;line-height:100%"&gt;Weighted Average Grant Date Fair Value ($)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2020&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;757&#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;19.97&#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 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;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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.92&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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:#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;(447)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;20.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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:#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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;26.83&#160;&lt;/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;Nonvested as of December 31, 2021&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;476&#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;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;24.29&#160;&lt;/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:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i99a4c705834a4c69b0818775056cb226_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOjJmOWExMWMxOWY5NTQ5NmQ4ZDkxYzBkMzNhMTUyNGJlL3RhYmxlcmFuZ2U6MmY5YTExYzE5Zjk1NDk2ZDhkOTFjMGQzM2ExNTI0YmVfMS0xLTEtMS0xNzI4NQ_fde54b70-d606-447b-bdfe-14db92e7b244"
      unitRef="shares">757000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i99a4c705834a4c69b0818775056cb226_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOjJmOWExMWMxOWY5NTQ5NmQ4ZDkxYzBkMzNhMTUyNGJlL3RhYmxlcmFuZ2U6MmY5YTExYzE5Zjk1NDk2ZDhkOTFjMGQzM2ExNTI0YmVfMS0zLTEtMS0xNzI4NQ_4069d969-77a8-42f2-bba8-70b5d3bdd504"
      unitRef="usdPerShare">19.97</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i8a940c6ead4046e69c70d41fabadeee5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOjJmOWExMWMxOWY5NTQ5NmQ4ZDkxYzBkMzNhMTUyNGJlL3RhYmxlcmFuZ2U6MmY5YTExYzE5Zjk1NDk2ZDhkOTFjMGQzM2ExNTI0YmVfMi0xLTEtMS0xNzI4NQ_df2931eb-5f78-4c2b-95dc-5ed0add9b701"
      unitRef="shares">168000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i8a940c6ead4046e69c70d41fabadeee5_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOjJmOWExMWMxOWY5NTQ5NmQ4ZDkxYzBkMzNhMTUyNGJlL3RhYmxlcmFuZ2U6MmY5YTExYzE5Zjk1NDk2ZDhkOTFjMGQzM2ExNTI0YmVfMi0zLTEtMS0xNzI4NQ_5602e1d7-2b2a-467b-b440-27b79a104acd"
      unitRef="usdPerShare">32.92</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i8a940c6ead4046e69c70d41fabadeee5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOjJmOWExMWMxOWY5NTQ5NmQ4ZDkxYzBkMzNhMTUyNGJlL3RhYmxlcmFuZ2U6MmY5YTExYzE5Zjk1NDk2ZDhkOTFjMGQzM2ExNTI0YmVfMy0xLTEtMS0xNzI4NQ_4aa04c4b-c1c8-4138-8e55-cefb5b8cea9d"
      unitRef="shares">447000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="i8a940c6ead4046e69c70d41fabadeee5_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOjJmOWExMWMxOWY5NTQ5NmQ4ZDkxYzBkMzNhMTUyNGJlL3RhYmxlcmFuZ2U6MmY5YTExYzE5Zjk1NDk2ZDhkOTFjMGQzM2ExNTI0YmVfMy0zLTEtMS0xNzI4NQ_cda6cf1d-70b8-45da-9fca-4b874bf53469"
      unitRef="usdPerShare">20.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i8a940c6ead4046e69c70d41fabadeee5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOjJmOWExMWMxOWY5NTQ5NmQ4ZDkxYzBkMzNhMTUyNGJlL3RhYmxlcmFuZ2U6MmY5YTExYzE5Zjk1NDk2ZDhkOTFjMGQzM2ExNTI0YmVfNC0xLTEtMS0xNzI4NQ_638286a2-50f9-4783-9820-00c0870bb8f3"
      unitRef="shares">2000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="i8a940c6ead4046e69c70d41fabadeee5_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOjJmOWExMWMxOWY5NTQ5NmQ4ZDkxYzBkMzNhMTUyNGJlL3RhYmxlcmFuZ2U6MmY5YTExYzE5Zjk1NDk2ZDhkOTFjMGQzM2ExNTI0YmVfNC0zLTEtMS0xNzI4NQ_1471d924-3f2c-4c0c-8aaa-5e84c1db1997"
      unitRef="usdPerShare">26.83</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i8d5c0905a2f54e23a8f079f5280a23fa_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOjJmOWExMWMxOWY5NTQ5NmQ4ZDkxYzBkMzNhMTUyNGJlL3RhYmxlcmFuZ2U6MmY5YTExYzE5Zjk1NDk2ZDhkOTFjMGQzM2ExNTI0YmVfNS0xLTEtMS0xNzI4NQ_146b1217-110b-44a2-8cfb-a463db957e73"
      unitRef="shares">476000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i8d5c0905a2f54e23a8f079f5280a23fa_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOjJmOWExMWMxOWY5NTQ5NmQ4ZDkxYzBkMzNhMTUyNGJlL3RhYmxlcmFuZ2U6MmY5YTExYzE5Zjk1NDk2ZDhkOTFjMGQzM2ExNTI0YmVfNS0zLTEtMS0xNzI4NQ_167cf2c5-3149-4959-9779-bfac9fbf54d6"
      unitRef="usdPerShare">24.29</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i8d5c0905a2f54e23a8f079f5280a23fa_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMTcxNQ_b0b9f0aa-593f-4590-b796-bf647bc21385"
      unitRef="usd">6600000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="i8a940c6ead4046e69c70d41fabadeee5_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMTkwNg_ded2a450-d97a-4c37-8ac4-9d49a404b0c5">P1Y9M18D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMTA5OTUxMTYzNzk2Mw_5a65c476-9406-49d3-ab70-989479dde414">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <whd:ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutPercentage
      contextRef="if5083f5d1b634a06bf365766813831a7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNzY5NjU4MTQwMDEwOQ_8e4b9f4e-627b-4760-9852-c5d5c561a9f2"
      unitRef="number">0</whd:ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutPercentage>
    <whd:ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutPercentage
      contextRef="ice0a0ac4d48946e1b53155cade6a8078_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNzY5NjU4MTQwMDExNg_308de6b8-ca8d-42ed-8454-04f46984fdff"
      unitRef="number">2</whd:ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMTA5OTUxMTYzNzk2NA_e78169b4-774d-43b8-bd6c-94547c8f6300">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <whd:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformancePeriod
      contextRef="ice0a0ac4d48946e1b53155cade6a8078_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNzY5NjU4MTQwNDQ4OQ_b188093d-ef1b-4593-aac5-11be4b75fa7b">P3Y</whd:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformancePeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i029f9c8cd3a44b9c96150c6b5a43668c_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMTA5OTUxMTYzNzk2NQ_c0728507-f5c6-42a3-a285-61d6e69c5bd8">P2Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMTA5OTUxMTYzNzk3Nw_f097e1e3-4a9c-4dfc-8a2b-a4924fec3dee">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationPerformanceSharesAwardUnvestedActivityTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMTA5OTUxMTYzNzk3OA_dfa2bbb3-0a1f-43ee-bfaf-7d5967e589d5">&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 our PSU activity during the year ended December&#160;31, 2021 (PSUs in thousands at their target values which assumes achievement of 100% of target):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt"&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:71.560%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.911%"/&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.499%"/&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:8pt;font-weight:700;line-height:100%"&gt;No. of PSUs&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:8pt;font-weight:700;line-height:100%"&gt;Weighted Average Grant Date Fair Value ($)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;152&#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;13.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;74&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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.82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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:#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 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;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(28)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;13.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;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;Nonvested as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;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;198&#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;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;20.80&#160;&lt;/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:ShareBasedCompensationPerformanceSharesAwardUnvestedActivityTableTextBlock>
    <whd:ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutPercentageActual
      contextRef="i029f9c8cd3a44b9c96150c6b5a43668c_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNzY5NjU4MTQwMzc4OA_6c4ec2e1-2eed-4ba5-b573-3b3963979dd0"
      unitRef="number">1</whd:ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutPercentageActual>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i2513224f47774dcfa0b4a051ec32a6f1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOmU3ZTU0ZjIxYWI4NTQwYzU5NTg1MmU0NTM5NmE0YTUxL3RhYmxlcmFuZ2U6ZTdlNTRmMjFhYjg1NDBjNTk1ODUyZTQ1Mzk2YTRhNTFfMS0xLTEtMS0yMzIwMA_63e4b933-c08c-4400-b698-2272934774d1"
      unitRef="shares">152000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i2513224f47774dcfa0b4a051ec32a6f1_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOmU3ZTU0ZjIxYWI4NTQwYzU5NTg1MmU0NTM5NmE0YTUxL3RhYmxlcmFuZ2U6ZTdlNTRmMjFhYjg1NDBjNTk1ODUyZTQ1Mzk2YTRhNTFfMS0zLTEtMS0yMzIwMA_5cf2d2e7-cb2d-4526-b7c6-eb7617d0c87a"
      unitRef="usdPerShare">13.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOmU3ZTU0ZjIxYWI4NTQwYzU5NTg1MmU0NTM5NmE0YTUxL3RhYmxlcmFuZ2U6ZTdlNTRmMjFhYjg1NDBjNTk1ODUyZTQ1Mzk2YTRhNTFfMi0xLTEtMS0yMzIwMA_20900b9f-37e5-436f-8df6-c265a229eadb"
      unitRef="shares">74000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOmU3ZTU0ZjIxYWI4NTQwYzU5NTg1MmU0NTM5NmE0YTUxL3RhYmxlcmFuZ2U6ZTdlNTRmMjFhYjg1NDBjNTk1ODUyZTQ1Mzk2YTRhNTFfMi0zLTEtMS0yMzIwMA_1f3c49d1-5dbb-4efb-9f7d-46e9d992689a"
      unitRef="usdPerShare">32.82</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOmU3ZTU0ZjIxYWI4NTQwYzU5NTg1MmU0NTM5NmE0YTUxL3RhYmxlcmFuZ2U6ZTdlNTRmMjFhYjg1NDBjNTk1ODUyZTQ1Mzk2YTRhNTFfMy0xLTEtMS0yMzIwMA_3f79284d-be39-47f9-8a7c-f759dc2fbb11"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOmU3ZTU0ZjIxYWI4NTQwYzU5NTg1MmU0NTM5NmE0YTUxL3RhYmxlcmFuZ2U6ZTdlNTRmMjFhYjg1NDBjNTk1ODUyZTQ1Mzk2YTRhNTFfMy0zLTEtMS0yMzIwMA_4a6e90c0-1d79-4c63-89b8-d8a7a66ef06e"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOmU3ZTU0ZjIxYWI4NTQwYzU5NTg1MmU0NTM5NmE0YTUxL3RhYmxlcmFuZ2U6ZTdlNTRmMjFhYjg1NDBjNTk1ODUyZTQ1Mzk2YTRhNTFfNC0xLTEtMS0yMzIwMA_26f5267c-9f2f-46c2-adec-7f6b432cd25b"
      unitRef="shares">28000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOmU3ZTU0ZjIxYWI4NTQwYzU5NTg1MmU0NTM5NmE0YTUxL3RhYmxlcmFuZ2U6ZTdlNTRmMjFhYjg1NDBjNTk1ODUyZTQ1Mzk2YTRhNTFfNC0zLTEtMS0yMzIwMA_e430eff4-e6ad-4c46-a2b3-24f54f660ce5"
      unitRef="usdPerShare">13.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i25d7ae9da61b4daf8efbdb7cad2189ca_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOmU3ZTU0ZjIxYWI4NTQwYzU5NTg1MmU0NTM5NmE0YTUxL3RhYmxlcmFuZ2U6ZTdlNTRmMjFhYjg1NDBjNTk1ODUyZTQ1Mzk2YTRhNTFfNS0xLTEtMS0yMzIwMA_3caf355d-eefd-4a7c-9603-cd25b4a26e9f"
      unitRef="shares">198000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i25d7ae9da61b4daf8efbdb7cad2189ca_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RhYmxlOmU3ZTU0ZjIxYWI4NTQwYzU5NTg1MmU0NTM5NmE0YTUxL3RhYmxlcmFuZ2U6ZTdlNTRmMjFhYjg1NDBjNTk1ODUyZTQ1Mzk2YTRhNTFfNS0zLTEtMS0yMzIwMA_bb729a0b-c1ac-4fd1-bb5e-5f385d82b34d"
      unitRef="usdPerShare">20.80</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i25d7ae9da61b4daf8efbdb7cad2189ca_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMzg1Mw_6b7c4540-3a65-4ce0-9517-de73e0259290"
      unitRef="usd">2200000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <whd:ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutPercentageActual
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfMzk3Ng_f6ed668c-7871-4b9c-bc2f-9665ba4bdfa5"
      unitRef="number">1</whd:ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutPercentageActual>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ibca6c0b5610d459bbe95a2434c069807_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185MS9mcmFnOjdlN2Y2NjBhZTFiNjRkM2E5YTU4ZjlhN2ZlZGJhMTg1L3RleHRyZWdpb246N2U3ZjY2MGFlMWI2NGQzYTlhNThmOWE3ZmVkYmExODVfNzY5NjU4MTQwNDYxMw_50e485dc-781f-443f-b492-24ca89c465c5">P1Y8M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfMTQ4Ng_42f137b8-e826-4dc8-8bc1-ba74452726de">Revenue&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We disaggregate revenue from contracts with customers into three revenue categories: (i) product revenues, (ii) rental revenues and (iii) field service and other revenues. We have predominately domestic operations, with a small amount of sales  in Australia and the Kingdom of Saudi Arabia. For the year ended December&#160;31, 2021, we derived 64% of our total revenues from the sale of our products, 14% of our total revenues from rental and 22% of our total revenues from field service and other. This compares to 59% of our total revenues from the sale of our products, 19% of our total revenues from rental and 22% of our total revenues from field service and other for the year ended December&#160;31, 2020. &#160;In 2019, we derived 57% of our total revenues from the sale of our products, 22% from rental and 21% from field service and other.&#160;The following table presents our revenues disaggregated by category:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;280,907&#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;206,801&#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;357,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Rental revenue&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;61,629&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;66,169&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;141,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:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Field service and other revenue&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;96,053&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;75,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;129,511&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;438,589&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;348,566&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;628,414&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2021, we had a deferred revenue balance of $1.8 million compared to the December&#160;31, 2020 balance of $1.1 million included in accrued expenses and other current liabilities in the consolidated balance sheets. Deferred revenue represents our obligation to transfer products or perform services for a customer for which we have received cash or billed in advance. The revenue that has been deferred will be recognized upon product delivery or as services are performed. As of December&#160;31, 2021, we did not have any contracts with an original length of greater than a year from which revenue is expected to be recognized in the future related to performance obligations that are unsatisfied.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <whd:PercentageOfRevenues
      contextRef="iaf59edf0aeab4907b4c4adfc8707e847_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfMzA3_4993a9b2-ac42-4a1c-94d2-134f31f4a2ec"
      unitRef="number">0.64</whd:PercentageOfRevenues>
    <whd:PercentageOfRevenues
      contextRef="i3415c6e4c0dc48e1bea8204206fbf3a6_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfMzYz_b0ff470e-38bb-4fa5-a768-5d97d2ccea42"
      unitRef="number">0.14</whd:PercentageOfRevenues>
    <whd:PercentageOfRevenues
      contextRef="i2f020b22fb354ab1ba391e731adb340c_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfNDA0_a413be34-2c20-492e-88a7-ed835e6c76c6"
      unitRef="number">0.22</whd:PercentageOfRevenues>
    <whd:PercentageOfRevenues
      contextRef="i08abb4da138a45058bd94bbb14bb4ff8_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfNDc2_63dc52a7-769b-40f2-b0db-8d5ec2561eb8"
      unitRef="number">0.59</whd:PercentageOfRevenues>
    <whd:PercentageOfRevenues
      contextRef="i7a1c40ec9c654ab289acd3e054f8f80a_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfNTMy_09ea19cc-ab9e-41a7-b508-9a06398fdb84"
      unitRef="number">0.19</whd:PercentageOfRevenues>
    <whd:PercentageOfRevenues
      contextRef="i7eb3e7d9088d46ea97fe7a98c0c73c3a_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfNTcz_b1353122-ac35-4c40-9790-6b542cae849f"
      unitRef="number">0.22</whd:PercentageOfRevenues>
    <whd:PercentageOfRevenues
      contextRef="i6186e198c38043f1a79e1c8000936cd0_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfNjY5_16c72831-bcc2-41e1-829a-f23fe7addb59"
      unitRef="number">0.57</whd:PercentageOfRevenues>
    <whd:PercentageOfRevenues
      contextRef="i3c9ff75b50894a56941a8efc6382a7c9_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfNzI1_137a52ee-2af0-4508-9962-ebf8d95ead0b"
      unitRef="number">0.22</whd:PercentageOfRevenues>
    <whd:PercentageOfRevenues
      contextRef="ifc05c9b2701845deb1fc5881c4cb0e62_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfNzQ0_e73526fd-efaf-48de-b8ac-0988c1cdb400"
      unitRef="number">0.21</whd:PercentageOfRevenues>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfMTQ4Nw_32d55abb-6b20-429b-b824-e3d0ac63e46a">The following table presents our revenues disaggregated by category:&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:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;280,907&#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;206,801&#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;357,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Rental revenue&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;61,629&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;66,169&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;141,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:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Field service and other revenue&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;96,053&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;75,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;129,511&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;438,589&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;348,566&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;628,414&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iaf59edf0aeab4907b4c4adfc8707e847_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfMi0xLTEtMS0xNzI4NQ_4989e103-8280-4168-b2d2-836de2bd3975"
      unitRef="usd">280907000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i08abb4da138a45058bd94bbb14bb4ff8_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfMi0zLTEtMS0xNzI4NQ_c7dd8c61-e452-4505-83c4-6fd2734a9efb"
      unitRef="usd">206801000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6186e198c38043f1a79e1c8000936cd0_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfMi01LTEtMS0xNzI4NQ_27ff4e2c-3b43-496b-bffb-6126fb366ece"
      unitRef="usd">357087000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i3415c6e4c0dc48e1bea8204206fbf3a6_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfMy0xLTEtMS0xNzI4NQ_28991b01-9acc-449d-85a9-b7f8cc3a4a8d"
      unitRef="usd">61629000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7a1c40ec9c654ab289acd3e054f8f80a_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfMy0zLTEtMS0xNzI4NQ_e09890ea-01d4-4910-9203-fdd8b0110e4e"
      unitRef="usd">66169000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i3c9ff75b50894a56941a8efc6382a7c9_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfMy01LTEtMS0xNzI4NQ_38d7ae2f-563d-4bf9-b261-3e9d415dc871"
      unitRef="usd">141816000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2f020b22fb354ab1ba391e731adb340c_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfNC0xLTEtMS0xNzI4NQ_67e490b6-b525-4249-b4ee-e463cc4a282c"
      unitRef="usd">96053000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7eb3e7d9088d46ea97fe7a98c0c73c3a_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfNC0zLTEtMS0xNzI4NQ_c2742426-de1c-42d3-bf77-fe0b0a6fadbd"
      unitRef="usd">75596000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ifc05c9b2701845deb1fc5881c4cb0e62_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfNC01LTEtMS0xNzI4NQ_7ec3dc3e-1b02-4023-9860-5f44516cc86b"
      unitRef="usd">129511000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfNS0xLTEtMS0xNzI4NQ_122e4302-eceb-4643-af86-ee8a0941b5d9"
      unitRef="usd">438589000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfNS0zLTEtMS0xNzI4NQ_c97e95d7-db16-4aa2-a7be-1f5442429610"
      unitRef="usd">348566000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RhYmxlOmFhMmRjMjc0N2NlNTRjZWY4ZDY0ODM0YjZhNWU1ODFjL3RhYmxlcmFuZ2U6YWEyZGMyNzQ3Y2U1NGNlZjhkNjQ4MzRiNmE1ZTU4MWNfNS01LTEtMS0xNzI4NQ_1c8201c4-8242-4be1-a10b-c26f9aa5ae67"
      unitRef="usd">628414000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfODky_39d680cd-69cf-4e53-a2d2-7875c8f6a22f"
      unitRef="usd">1800000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN185Ny9mcmFnOmU5M2EyOTBhZmFhZDQ3NWY5YjFiZTNkODdjNGQxNWI2L3RleHRyZWdpb246ZTkzYTI5MGFmYWFkNDc1ZjliMWJlM2Q4N2M0ZDE1YjZfOTI1_b58424db-5c88-41db-a667-2ff4377aa7ac"
      unitRef="usd">1100000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:OperatingLeasesOfLessorDisclosureTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIyOTE_4171fa40-783f-43ea-b51d-dbf20dead535">LeasesWe lease real estate, apartments, forklifts, vehicles and other equipment under non-cancellable agreements. Certain of our leases include one or more options to renew, with renewal terms that can extend the lease term from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIzNg_84ea8517-a8a2-4093-b043-e5b69b2e5bf9"&gt;one&lt;/span&gt; to 10 years or greater. The exercise of lease renewal options is typically at our discretion. The measurement of the lease term includes options to extend or renew the lease when it is reasonably certain that we will exercise those options. Lease assets and liabilities are recognized at the commencement date based on the present value of minimum lease payments over the lease term. To determine the present value of future minimum lease payments, we use the implicit rate when readily determinable; however, many of our leases do not provide an implicit rate. Therefore, to determine the present value of minimum lease payments, we use our incremental borrowing rate based on the information available at the commencement date of the lease. Our finance lease agreements typically include an interest rate that is used to determine the present value of future lease payments. Short-term operating leases with an initial term of twelve months or less are not recorded on our balance sheet. Minimum lease payments are expensed on a straight-line basis over the lease term, including reasonably certain renewal options.&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 components of operating and finance lease costs:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.554%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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;2021&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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;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:400;line-height:100%"&gt;&#160;&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:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 style="background-color:#ffffff;padding:2px 0 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;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,739&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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 expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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 colspan="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;6,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;7,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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&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,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;329&#160;&lt;/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;Sublease income&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;(265)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(475)&lt;/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 lease cost&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;13,693&#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 #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,979&#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-bottom:3pt;margin-top:7pt;text-indent:36pt"&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 is supplemental cash flow information for our operating and finance leases:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.554%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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;2021&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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 paid for amounts included in the measurement of lease liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/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;Operating cash flows from finance leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;Operating cash flows from operating 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,398&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,875&#160;&lt;/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;Financing cash flows from finance 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,205&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,317&#160;&lt;/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&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;11,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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;12,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Right-of-use assets obtained in exchange for new lease obligations:&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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;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;Operating leases&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;5,342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;1,329&#160;&lt;/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;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;9,941&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,973&#160;&lt;/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;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;15,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #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;4,302&#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-bottom:3pt;text-indent:36pt"&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 is the aggregate future lease payments for operating and finance leases as of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Operating&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:8pt;font-weight:700;line-height:100%"&gt;Finance&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&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;4,721&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,848&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,932&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,320&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="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,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;30&#160;&lt;/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;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;2,134&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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:9pt;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;Thereafter&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,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total undiscounted 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;24,631&#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;11,467&#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 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;Less: effects of discounting&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;(2,101)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(789)&lt;/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;Present value of lease payments&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;22,530&#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;10,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 represents the average lease terms and discount rates for our operating and finance lease portfolio as of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:75.215%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:5.186%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:4.163%"/&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:5.186%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:4.166%"/&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="border-bottom: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;Year ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="6" 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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="6" 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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 average remaining lease term:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&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: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 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;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;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;2.1&lt;/span&gt;&lt;/td&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;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:top"&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&lt;/span&gt;&lt;/td&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;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 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;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;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;5.8&lt;/span&gt;&lt;/td&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;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.6&lt;/span&gt;&lt;/td&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;years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 average discount rate&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;&#160;&lt;/span&gt;&lt;/td&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:8pt;font-weight:400;line-height:100%"&gt;&#160;&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 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;Finance 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;8.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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;10.78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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:#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;Operating 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;3.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;3.52&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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-bottom:12pt;text-indent:36pt"&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 lessor, we rent a fleet of frac valves and ancillary equipment for short-term rental periods, typically &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzE4NDk_98348065-1114-4c63-8335-199b70a86b36"&gt;one&lt;/span&gt; to two months. Our lessor portfolio consists mainly of operating leases for equipment utilized during the drilling, completion and production phases of our customers&#x2019; wells. At this time, most lessor agreements contain less than three-month terms with no renewal options that are reasonably certain to exercise, or early termination options based on established terms specific to the individual agreement. See Note 7 for disaggregation of revenue.&lt;/span&gt;&lt;/div&gt;</us-gaap:OperatingLeasesOfLessorDisclosureTextBlock>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIyOTE_572e7cc3-e642-4bde-92dc-2d57a08f1803">LeasesWe lease real estate, apartments, forklifts, vehicles and other equipment under non-cancellable agreements. Certain of our leases include one or more options to renew, with renewal terms that can extend the lease term from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIzNg_84ea8517-a8a2-4093-b043-e5b69b2e5bf9"&gt;one&lt;/span&gt; to 10 years or greater. The exercise of lease renewal options is typically at our discretion. The measurement of the lease term includes options to extend or renew the lease when it is reasonably certain that we will exercise those options. Lease assets and liabilities are recognized at the commencement date based on the present value of minimum lease payments over the lease term. To determine the present value of future minimum lease payments, we use the implicit rate when readily determinable; however, many of our leases do not provide an implicit rate. Therefore, to determine the present value of minimum lease payments, we use our incremental borrowing rate based on the information available at the commencement date of the lease. Our finance lease agreements typically include an interest rate that is used to determine the present value of future lease payments. Short-term operating leases with an initial term of twelve months or less are not recorded on our balance sheet. Minimum lease payments are expensed on a straight-line basis over the lease term, including reasonably certain renewal options.&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 components of operating and finance lease costs:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.554%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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;2021&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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;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:400;line-height:100%"&gt;&#160;&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:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 style="background-color:#ffffff;padding:2px 0 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;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,739&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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 expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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 colspan="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;6,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;7,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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&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,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;329&#160;&lt;/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;Sublease income&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;(265)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(475)&lt;/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 lease cost&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;13,693&#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 #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,979&#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-bottom:3pt;margin-top:7pt;text-indent:36pt"&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 is supplemental cash flow information for our operating and finance leases:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.554%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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;2021&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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 paid for amounts included in the measurement of lease liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/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;Operating cash flows from finance leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;Operating cash flows from operating 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,398&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,875&#160;&lt;/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;Financing cash flows from finance 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,205&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,317&#160;&lt;/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&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;11,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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;12,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Right-of-use assets obtained in exchange for new lease obligations:&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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;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;Operating leases&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;5,342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;1,329&#160;&lt;/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;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;9,941&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,973&#160;&lt;/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;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;15,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #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;4,302&#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-bottom:3pt;text-indent:36pt"&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 is the aggregate future lease payments for operating and finance leases as of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Operating&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:8pt;font-weight:700;line-height:100%"&gt;Finance&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&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;4,721&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,848&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,932&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,320&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="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,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;30&#160;&lt;/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;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;2,134&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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:9pt;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;Thereafter&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,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total undiscounted 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;24,631&#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;11,467&#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 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;Less: effects of discounting&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;(2,101)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(789)&lt;/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;Present value of lease payments&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;22,530&#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;10,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 represents the average lease terms and discount rates for our operating and finance lease portfolio as of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:75.215%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:5.186%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:4.163%"/&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:5.186%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:4.166%"/&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="border-bottom: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;Year ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="6" 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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="6" 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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 average remaining lease term:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&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: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 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;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;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;2.1&lt;/span&gt;&lt;/td&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;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:top"&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&lt;/span&gt;&lt;/td&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;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 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;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;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;5.8&lt;/span&gt;&lt;/td&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;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.6&lt;/span&gt;&lt;/td&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;years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 average discount rate&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;&#160;&lt;/span&gt;&lt;/td&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:8pt;font-weight:400;line-height:100%"&gt;&#160;&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 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;Finance 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;8.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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;10.78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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:#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;Operating 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;3.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;3.52&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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-bottom:12pt;text-indent:36pt"&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 lessor, we rent a fleet of frac valves and ancillary equipment for short-term rental periods, typically &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzE4NDk_98348065-1114-4c63-8335-199b70a86b36"&gt;one&lt;/span&gt; to two months. Our lessor portfolio consists mainly of operating leases for equipment utilized during the drilling, completion and production phases of our customers&#x2019; wells. At this time, most lessor agreements contain less than three-month terms with no renewal options that are reasonably certain to exercise, or early termination options based on established terms specific to the individual agreement. See Note 7 for disaggregation of revenue.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeFinanceLeasesTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIyOTE_bdaf9a19-8388-4001-a805-1bb7e7eaa3f0">LeasesWe lease real estate, apartments, forklifts, vehicles and other equipment under non-cancellable agreements. Certain of our leases include one or more options to renew, with renewal terms that can extend the lease term from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIzNg_84ea8517-a8a2-4093-b043-e5b69b2e5bf9"&gt;one&lt;/span&gt; to 10 years or greater. The exercise of lease renewal options is typically at our discretion. The measurement of the lease term includes options to extend or renew the lease when it is reasonably certain that we will exercise those options. Lease assets and liabilities are recognized at the commencement date based on the present value of minimum lease payments over the lease term. To determine the present value of future minimum lease payments, we use the implicit rate when readily determinable; however, many of our leases do not provide an implicit rate. Therefore, to determine the present value of minimum lease payments, we use our incremental borrowing rate based on the information available at the commencement date of the lease. Our finance lease agreements typically include an interest rate that is used to determine the present value of future lease payments. Short-term operating leases with an initial term of twelve months or less are not recorded on our balance sheet. Minimum lease payments are expensed on a straight-line basis over the lease term, including reasonably certain renewal options.&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 components of operating and finance lease costs:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.554%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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;2021&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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;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:400;line-height:100%"&gt;&#160;&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:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 style="background-color:#ffffff;padding:2px 0 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;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,739&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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 expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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 colspan="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;6,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;7,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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&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,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;329&#160;&lt;/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;Sublease income&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;(265)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(475)&lt;/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 lease cost&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;13,693&#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 #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,979&#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-bottom:3pt;margin-top:7pt;text-indent:36pt"&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 is supplemental cash flow information for our operating and finance leases:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.554%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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;2021&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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 paid for amounts included in the measurement of lease liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/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;Operating cash flows from finance leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;Operating cash flows from operating 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,398&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,875&#160;&lt;/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;Financing cash flows from finance 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,205&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,317&#160;&lt;/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&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;11,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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;12,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Right-of-use assets obtained in exchange for new lease obligations:&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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;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;Operating leases&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;5,342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;1,329&#160;&lt;/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;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;9,941&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,973&#160;&lt;/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;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;15,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #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;4,302&#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-bottom:3pt;text-indent:36pt"&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 is the aggregate future lease payments for operating and finance leases as of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Operating&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:8pt;font-weight:700;line-height:100%"&gt;Finance&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&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;4,721&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,848&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,932&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,320&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="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,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;30&#160;&lt;/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;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;2,134&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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:9pt;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;Thereafter&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,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total undiscounted 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;24,631&#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;11,467&#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 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;Less: effects of discounting&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;(2,101)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(789)&lt;/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;Present value of lease payments&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;22,530&#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;10,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 represents the average lease terms and discount rates for our operating and finance lease portfolio as of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:75.215%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:5.186%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:4.163%"/&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:5.186%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:4.166%"/&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="border-bottom: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;Year ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="6" 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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="6" 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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 average remaining lease term:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&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: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 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;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;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;2.1&lt;/span&gt;&lt;/td&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;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:top"&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&lt;/span&gt;&lt;/td&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;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 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;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;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;5.8&lt;/span&gt;&lt;/td&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;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.6&lt;/span&gt;&lt;/td&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;years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 average discount rate&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;&#160;&lt;/span&gt;&lt;/td&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:8pt;font-weight:400;line-height:100%"&gt;&#160;&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 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;Finance 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;8.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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;10.78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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:#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;Operating 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;3.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;3.52&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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-bottom:12pt;text-indent:36pt"&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 lessor, we rent a fleet of frac valves and ancillary equipment for short-term rental periods, typically &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzE4NDk_98348065-1114-4c63-8335-199b70a86b36"&gt;one&lt;/span&gt; to two months. Our lessor portfolio consists mainly of operating leases for equipment utilized during the drilling, completion and production phases of our customers&#x2019; wells. At this time, most lessor agreements contain less than three-month terms with no renewal options that are reasonably certain to exercise, or early termination options based on established terms specific to the individual agreement. See Note 7 for disaggregation of revenue.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeFinanceLeasesTextBlock>
    <whd:LesseeOperatingLeaseTermOfContractPotentialExtensionPeriod
      contextRef="i215ffc16f88e4a36a5b2ebb605549bcd_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzI0Mg_03605383-5086-49fa-abae-076c6b8fcb93">P10Y</whd:LesseeOperatingLeaseTermOfContractPotentialExtensionPeriod>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIyODc_72b765ee-a986-4b43-9e53-8a869fc1cc79">&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 components of operating and finance lease costs:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.554%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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;2021&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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;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:400;line-height:100%"&gt;&#160;&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:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 style="background-color:#ffffff;padding:2px 0 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;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,739&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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 expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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 colspan="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;6,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;7,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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&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,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;329&#160;&lt;/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;Sublease income&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;(265)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(475)&lt;/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 lease cost&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;13,693&#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 #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,979&#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:LeaseCostTableTextBlock>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzMtMS0xLTEtMTcyODU_c48896ae-62e5-43e6-987d-259df235524a"
      unitRef="usd">4906000</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzMtMy0xLTEtMTcyODU_20581c77-3a51-4737-90b5-3a1e2957ddea"
      unitRef="usd">5739000</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzQtMS0xLTEtMTcyODU_39ddcba1-41e6-4ba5-bbdd-857efad21f76"
      unitRef="usd">520000</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzQtMy0xLTEtMTcyODU_86208856-3310-4a48-82e6-dae1f4655abf"
      unitRef="usd">639000</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:OperatingLeaseCost
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzUtMS0xLTEtMTcyODU_6cc02e83-5f25-4534-b8fd-a9596610f2d9"
      unitRef="usd">6638000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzUtMy0xLTEtMTcyODU_29dcad74-db81-4d9c-b94d-05f0634802db"
      unitRef="usd">7747000</us-gaap:OperatingLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzYtMS0xLTEtMTcyODU_11b4d3bf-5659-49d0-980b-dcb03f81ef1c"
      unitRef="usd">1894000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzYtMy0xLTEtMTcyODU_c4b29f45-8cc4-4093-b0c7-c550e54f2b1b"
      unitRef="usd">329000</us-gaap:ShortTermLeaseCost>
    <us-gaap:SubleaseIncome
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzctMS0xLTEtMTcyODU_451f88a4-af32-4d23-a0f2-da616e27bb6f"
      unitRef="usd">265000</us-gaap:SubleaseIncome>
    <us-gaap:SubleaseIncome
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzctMy0xLTEtMTcyODU_cabaa7c7-1a40-430f-bfef-8ad4ff41cf48"
      unitRef="usd">475000</us-gaap:SubleaseIncome>
    <us-gaap:LeaseCost
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzgtMS0xLTEtMTcyODU_ea2b1432-5a9b-4057-aab0-371cdb893d6e"
      unitRef="usd">13693000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTowMTUyOWIwY2MwOWU0NjhlOWFhMmRiYWM5OWQ4YmJiMS90YWJsZXJhbmdlOjAxNTI5YjBjYzA5ZTQ2OGU5YWEyZGJhYzk5ZDhiYmIxXzgtMy0xLTEtMTcyODU_ec1f4f74-ed81-448f-b7d7-eef7b83e3d7a"
      unitRef="usd">13979000</us-gaap:LeaseCost>
    <whd:SupplementalCashFlowInformationLeaseCostsTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIyOTM_c7c840e7-4ca4-44f6-a7cb-28cf6d11f9a5">&lt;div style="margin-bottom:3pt;margin-top:7pt;text-indent:36pt"&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 is supplemental cash flow information for our operating and finance leases:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.554%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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;2021&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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 paid for amounts included in the measurement of lease liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/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;Operating cash flows from finance leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;639&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;Operating cash flows from operating 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,398&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,875&#160;&lt;/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;Financing cash flows from finance 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,205&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,317&#160;&lt;/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&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;11,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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;12,831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Right-of-use assets obtained in exchange for new lease obligations:&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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;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;Operating leases&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;5,342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;1,329&#160;&lt;/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;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;9,941&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,973&#160;&lt;/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;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;15,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #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;4,302&#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;</whd:SupplementalCashFlowInformationLeaseCostsTableTextBlock>
    <us-gaap:FinanceLeaseInterestPaymentOnLiability
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzMtMS0xLTEtMTcyODU_603324a0-2c0d-4334-b9fb-9154151bd01c"
      unitRef="usd">520000</us-gaap:FinanceLeaseInterestPaymentOnLiability>
    <us-gaap:FinanceLeaseInterestPaymentOnLiability
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzMtMy0xLTEtMTcyODU_9bfed5de-7ec8-47a3-9d2d-31e64224acdf"
      unitRef="usd">639000</us-gaap:FinanceLeaseInterestPaymentOnLiability>
    <us-gaap:OperatingLeasePayments
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzQtMS0xLTEtMTcyODU_28e00787-fc82-4bd2-a34a-e83133cfd8c2"
      unitRef="usd">5398000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzQtMy0xLTEtMTcyODU_194910c8-5443-4737-93d6-e4502e4bb562"
      unitRef="usd">6875000</us-gaap:OperatingLeasePayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzUtMS0xLTEtMTcyODU_a959b063-b066-468c-a66b-d5e7199227f7"
      unitRef="usd">5205000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzUtMy0xLTEtMTcyODU_29fc7be2-3f23-48c8-a80b-ac57dbfd80ff"
      unitRef="usd">5317000</us-gaap:FinanceLeasePrincipalPayments>
    <whd:CashOutflowIncludedInLeaseLiabilitiesMeasurement
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzYtMS0xLTEtMTcyODU_334e2792-325d-424d-af67-a5d101efc0fe"
      unitRef="usd">11123000</whd:CashOutflowIncludedInLeaseLiabilitiesMeasurement>
    <whd:CashOutflowIncludedInLeaseLiabilitiesMeasurement
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzYtMy0xLTEtMTcyODU_d7a0bfc3-fe54-4356-8006-19f7eff18de7"
      unitRef="usd">12831000</whd:CashOutflowIncludedInLeaseLiabilitiesMeasurement>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzktMS0xLTEtMTcyODU_9e905803-11f2-49df-b25e-69ce3b365b2f"
      unitRef="usd">5342000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzktMy0xLTEtMTcyODU_0b4358d3-e752-4303-a29c-2919bc473b82"
      unitRef="usd">1329000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzEwLTEtMS0xLTE3Mjg1_3d63fc09-dd4f-49f7-93b4-753151a37d54"
      unitRef="usd">9941000</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzEwLTMtMS0xLTE3Mjg1_a9ca6f19-0e26-41c0-a2d8-a4002a58ba9c"
      unitRef="usd">2973000</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <whd:RightOfUseAssetsTotal
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzExLTEtMS0xLTE3Mjg1_18bd356f-91e8-4687-a8b6-37fa36074332"
      unitRef="usd">15283000</whd:RightOfUseAssetsTotal>
    <whd:RightOfUseAssetsTotal
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpjOTQzMTYxYTE0NjU0NGIxYjhhMzc2YWUzNTRiNWMzMC90YWJsZXJhbmdlOmM5NDMxNjFhMTQ2NTQ0YjFiOGEzNzZhZTM1NGI1YzMwXzExLTMtMS0xLTE3Mjg1_0978842a-270b-40ce-a593-73145796eb19"
      unitRef="usd">4302000</whd:RightOfUseAssetsTotal>
    <us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIyODk_a7ca37e8-5895-48c9-861e-cfe594fb3473">&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 is the aggregate future lease payments for operating and finance leases as of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Operating&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:8pt;font-weight:700;line-height:100%"&gt;Finance&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&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;4,721&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,848&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,932&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,320&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="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,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;30&#160;&lt;/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;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;2,134&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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:9pt;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;Thereafter&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,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total undiscounted 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;24,631&#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;11,467&#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 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;Less: effects of discounting&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;(2,101)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(789)&lt;/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;Present value of lease payments&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;22,530&#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;10,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIyOTU_87fd0516-64d3-422f-89a2-042a2031f552">&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 is the aggregate future lease payments for operating and finance leases as of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:77.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.282%"/&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:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Operating&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:8pt;font-weight:700;line-height:100%"&gt;Finance&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&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;4,721&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,848&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,932&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,320&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="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,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;30&#160;&lt;/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;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;2,134&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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:9pt;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;Thereafter&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,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total undiscounted 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;24,631&#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;11,467&#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 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;Less: effects of discounting&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;(2,101)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(789)&lt;/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;Present value of lease payments&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;22,530&#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;10,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzEtMS0xLTEtMTcyODU_c53403fb-f22f-4ffb-babb-1bfcc92c16fd"
      unitRef="usd">5506000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzEtMy0xLTEtMTcyODU_a70a85de-4788-4f97-ad63-8d9848d8fcd5"
      unitRef="usd">5269000</us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzItMS0xLTEtMTcyODU_bd17b151-2eea-419e-8a88-de92fe0da3e4"
      unitRef="usd">4721000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzItMy0xLTEtMTcyODU_e7da9855-d990-4030-ab58-998124179ef8"
      unitRef="usd">3848000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzMtMS0xLTEtMTcyODU_88e79803-aa4b-4faa-a4d7-83dc31c540f5"
      unitRef="usd">3932000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzMtMy0xLTEtMTcyODU_dc099adb-12d9-435a-a030-4372fbce9221"
      unitRef="usd">2320000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzQtMS0xLTEtMTcyODU_81378733-7d4a-4c90-b513-fe71ea013cff"
      unitRef="usd">3069000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzQtMy0xLTEtMTcyODU_59dd8221-f17c-48ed-a2d7-b61f4c4e4111"
      unitRef="usd">30000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzUtMS0xLTEtMTcyODU_e8dad004-a77f-4f6d-9217-bfca5058b439"
      unitRef="usd">2134000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzUtMy0xLTEtMTcyODU_f187e0a9-6d4f-4399-b5a4-5a950cd9c923"
      unitRef="usd">0</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzYtMS0xLTEtMTcyODU_fc4b99ec-753b-4ef4-ad73-f82560757619"
      unitRef="usd">5269000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzYtMy0xLTEtMTcyODU_667e1cc7-6c18-422b-a34d-bccd9968a8c0"
      unitRef="usd">0</us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzctMS0xLTEtMTcyODU_18d68a19-4d5f-49ad-b303-f850a27b7192"
      unitRef="usd">24631000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:FinanceLeaseLiabilityPaymentsDue
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzctMy0xLTEtMTcyODU_1be97c54-cc5e-4250-9fcc-1bd7ed566c0c"
      unitRef="usd">11467000</us-gaap:FinanceLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzgtMS0xLTEtMTcyODU_2fe25321-3d3b-40b8-a3bc-e6d0dcc3e89f"
      unitRef="usd">2101000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzgtMy0xLTEtMTcyODU_f571b280-cd3a-44a6-af69-e136b9143fad"
      unitRef="usd">789000</us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzktMS0xLTEtMTcyODU_990137c1-5f0f-42be-84dc-b4fe2780394e"
      unitRef="usd">22530000</us-gaap:OperatingLeaseLiability>
    <us-gaap:FinanceLeaseLiability
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTpiZjY1ZTgxOGZkNjc0ZmRiODRjMDJjNTQwYTg1ZDk4Zi90YWJsZXJhbmdlOmJmNjVlODE4ZmQ2NzRmZGI4NGMwMmM1NDBhODVkOThmXzktMy0xLTEtMTcyODU_392d0993-4640-45b3-bf6f-02a156d0f7b0"
      unitRef="usd">10678000</us-gaap:FinanceLeaseLiability>
    <whd:AssetAndLiabilitiesLesseeTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIyOTA_7ed80eea-9503-43e5-bfb6-7c7aa56fe1fb">&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 represents the average lease terms and discount rates for our operating and finance lease portfolio as of December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:75.215%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:5.186%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:4.163%"/&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:5.186%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:4.166%"/&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="border-bottom: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;Year ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="6" 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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="6" 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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 average remaining lease term:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;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;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&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: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 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;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;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;2.1&lt;/span&gt;&lt;/td&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;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:top"&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&lt;/span&gt;&lt;/td&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;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 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;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;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;5.8&lt;/span&gt;&lt;/td&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;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.6&lt;/span&gt;&lt;/td&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;years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 average discount rate&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;&#160;&lt;/span&gt;&lt;/td&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:8pt;font-weight:400;line-height:100%"&gt;&#160;&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 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;Finance 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;8.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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;10.78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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:#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;Operating 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;3.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;3.52&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;</whd:AssetAndLiabilitiesLesseeTableTextBlock>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTo3MmI2ODQzY2QwOTM0OGE3OGRlYjFmYjRjYTM2MzEwZi90YWJsZXJhbmdlOjcyYjY4NDNjZDA5MzQ4YTc4ZGViMWZiNGNhMzYzMTBmXzMtMS0xLTEtMTcyODU_c79b40dc-1e39-4872-a14c-6172344523f0">P2Y1M6D</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTo3MmI2ODQzY2QwOTM0OGE3OGRlYjFmYjRjYTM2MzEwZi90YWJsZXJhbmdlOjcyYjY4NDNjZDA5MzQ4YTc4ZGViMWZiNGNhMzYzMTBmXzMtNC0xLTEtMTcyODU_4b9ecdcf-5306-4048-aa0d-0b60088732dd">P1Y7M6D</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTo3MmI2ODQzY2QwOTM0OGE3OGRlYjFmYjRjYTM2MzEwZi90YWJsZXJhbmdlOjcyYjY4NDNjZDA5MzQ4YTc4ZGViMWZiNGNhMzYzMTBmXzQtMS0xLTEtMTcyODU_c38fb6a5-0501-4a21-bd13-0d073e6af526">P5Y9M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTo3MmI2ODQzY2QwOTM0OGE3OGRlYjFmYjRjYTM2MzEwZi90YWJsZXJhbmdlOjcyYjY4NDNjZDA5MzQ4YTc4ZGViMWZiNGNhMzYzMTBmXzQtNC0xLTEtMTcyODU_34211657-f8f4-4029-8f5e-3b1117b0a334">P6Y7M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTo3MmI2ODQzY2QwOTM0OGE3OGRlYjFmYjRjYTM2MzEwZi90YWJsZXJhbmdlOjcyYjY4NDNjZDA5MzQ4YTc4ZGViMWZiNGNhMzYzMTBmXzctMS0xLTEtMTcyODU_39175b38-5f53-476a-a4c3-633bb14970cc"
      unitRef="number">0.0858</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTo3MmI2ODQzY2QwOTM0OGE3OGRlYjFmYjRjYTM2MzEwZi90YWJsZXJhbmdlOjcyYjY4NDNjZDA5MzQ4YTc4ZGViMWZiNGNhMzYzMTBmXzctNC0xLTEtMTcyODU_9916e5a6-0664-45db-a065-26839e1fa111"
      unitRef="number">0.1078</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTo3MmI2ODQzY2QwOTM0OGE3OGRlYjFmYjRjYTM2MzEwZi90YWJsZXJhbmdlOjcyYjY4NDNjZDA5MzQ4YTc4ZGViMWZiNGNhMzYzMTBmXzgtMS0xLTEtMTcyODU_5dac2a8d-a092-40a3-8490-f0ed6d545eec"
      unitRef="number">0.0301</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90YWJsZTo3MmI2ODQzY2QwOTM0OGE3OGRlYjFmYjRjYTM2MzEwZi90YWJsZXJhbmdlOjcyYjY4NDNjZDA5MzQ4YTc4ZGViMWZiNGNhMzYzMTBmXzgtNC0xLTEtMTcyODU_6462d453-3eeb-4bc8-b918-2087f9972376"
      unitRef="number">0.0352</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <whd:LessorOperatingLeaseRentalPeriod
      contextRef="i215ffc16f88e4a36a5b2ebb605549bcd_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzE4NTU_cb6d567f-6343-4181-b446-9e045b22fe10">P2M</whd:LessorOperatingLeaseRentalPeriod>
    <us-gaap:LessorOperatingLeaseTermOfContract
      contextRef="i3ac0ac3a20fd43b1b4f75382cc135fa1_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDAvZnJhZzo3NDY2NmQ0MjBhYTk0NTBiOWZjMGMwMjdkOTMzZmE5MC90ZXh0cmVnaW9uOjc0NjY2ZDQyMGFhOTQ1MGI5ZmMwYzAyN2Q5MzNmYTkwXzIzMDE_d75c1d32-7c8e-4b42-96a3-cc73d73b8801">P3M</us-gaap:LessorOperatingLeaseTermOfContract>
    <whd:TaxReceivableAgreementDisclosureTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDYvZnJhZzo2NTA1OWM1NDUxOTU0NTEwYTNmNjhkMmZmMDA1MWVkZS90ZXh0cmVnaW9uOjY1MDU5YzU0NTE5NTQ1MTBhM2Y2OGQyZmYwMDUxZWRlXzMyNjQ_673fb27c-3706-4b79-956a-2af87cdabf8a">Tax Receivable Agreement&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with our IPO, we entered into the TRA with certain direct and indirect owners of Cactus LLC (the &#x201c;TRA Holders&#x201d;). The TRA generally provides for payment by Cactus Inc. to the TRA Holders of 85% of the net cash savings, if any, in U.S. federal, state and local income tax and franchise tax that Cactus Inc. actually realizes or is deemed to realize in certain circumstances as a result of (i) certain increases in tax basis that occur as a result of Cactus Inc.&#x2019;s acquisition (or deemed acquisition for U.S. federal income tax purposes) of all or a portion of such TRA Holder&#x2019;s CW Units in connection with our IPO or any subsequent offering, or pursuant to any other exercise of the Redemption Right or the Call Right, (ii) certain increases in tax basis resulting from the repayment of borrowings outstanding under Cactus LLC&#x2019;s term loan facility in connection with our IPO and (iii) imputed interest deemed to be paid by Cactus Inc. as a result of, and additional tax basis arising from, any payments Cactus Inc. makes under the TRA. We will retain the remaining 15% of the cash savings.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The TRA liability is calculated by determining the tax basis subject to TRA (&#x201c;tax basis&#x201d;) and applying a blended tax rate to the basis differences and calculating the iterative impact. The blended tax rate consists of the U.S. federal income tax rate and an assumed combined state and local income tax rate driven by the apportionment factors applicable to each state. As of December&#160;31, 2021, the total liability from the TRA was $281.6 million with $11.8 million reflected in current liabilities based on the expected timing of our next payment. The payments under the TRA will not be conditional on a holder of rights under the TRA having a continued ownership interest in either Cactus LLC or Cactus Inc.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The term of the TRA commenced upon completion of our IPO and will continue until all tax benefits that are subject to the TRA have been utilized or expired, unless we exercise our right to terminate the TRA. If we elect to terminate the TRA early (or it is terminated early due to certain mergers, asset sales, other forms of business combinations or other changes of control), our obligations under the TRA would accelerate and we would be required to make an immediate payment equal to the present value of the anticipated future payments to be made by us under the TRA and such payment is expected to be substantial. The calculation of anticipated future payments will be based upon certain assumptions and deemed events set forth in the TRA, including the assumptions that (i) we have sufficient taxable income to fully utilize the tax benefits covered by the TRA and (ii) any CW Units (other than those held by Cactus Inc.) outstanding on the termination date are deemed to be redeemed on the termination date. Any early termination payment may be made significantly in advance of the actual realization, if any, of the future tax benefits to which the termination payment relates.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We may elect to defer payments due under the TRA if we do not have available cash to satisfy our payment obligations under the TRA. Any such deferred payments under the TRA generally will accrue interest from the due date for such payment until the payment date.&lt;/span&gt;&lt;/div&gt;</whd:TaxReceivableAgreementDisclosureTextBlock>
    <whd:TaxSavingsPayableToTraHoldersAsPercent
      contextRef="i6871250c1dae4b57911386c66d580f02_D20180212-20180212"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDYvZnJhZzo2NTA1OWM1NDUxOTU0NTEwYTNmNjhkMmZmMDA1MWVkZS90ZXh0cmVnaW9uOjY1MDU5YzU0NTE5NTQ1MTBhM2Y2OGQyZmYwMDUxZWRlXzIzNA_fcd65542-ebe6-4aed-9c9c-eaa89268b02e"
      unitRef="number">0.85</whd:TaxSavingsPayableToTraHoldersAsPercent>
    <whd:TaxSavingsBenefitRetainedAsPercent
      contextRef="i6871250c1dae4b57911386c66d580f02_D20180212-20180212"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDYvZnJhZzo2NTA1OWM1NDUxOTU0NTEwYTNmNjhkMmZmMDA1MWVkZS90ZXh0cmVnaW9uOjY1MDU5YzU0NTE5NTQ1MTBhM2Y2OGQyZmYwMDUxZWRlXzExMDc_e8fb4bfa-b99b-44c6-819a-94efa6f27c43"
      unitRef="number">0.15</whd:TaxSavingsBenefitRetainedAsPercent>
    <us-gaap:OtherCommitment
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDYvZnJhZzo2NTA1OWM1NDUxOTU0NTEwYTNmNjhkMmZmMDA1MWVkZS90ZXh0cmVnaW9uOjY1MDU5YzU0NTE5NTQ1MTBhM2Y2OGQyZmYwMDUxZWRlXzE1NjE_5a5cff4b-6c29-4c8f-82d5-ddcecc370192"
      unitRef="usd">281600000</us-gaap:OtherCommitment>
    <whd:TaxReceivableAgreementLiabilityCurrent
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDYvZnJhZzo2NTA1OWM1NDUxOTU0NTEwYTNmNjhkMmZmMDA1MWVkZS90ZXh0cmVnaW9uOjY1MDU5YzU0NTE5NTQ1MTBhM2Y2OGQyZmYwMDUxZWRlXzE1Njk_fa50149e-9da8-426d-bbe3-f028b63e811d"
      unitRef="usd">11800000</whd:TaxReceivableAgreementLiabilityCurrent>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzczNTI_ae670867-3f75-43e9-a138-540133ec9a33">Equity&lt;div style="margin-bottom: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;Redemptions of CW Units&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to the First Amended and Restated Limited Liability Company Operating Agreement of Cactus LLC (the &#x201c;Cactus LLC Agreement&#x201d;), each holder of CW Units (&#x201c;CW Unit Holder&#x201d;) has, subject to certain limitations, the right (the &#x201c;Redemption Right&#x201d;) to cause Cactus LLC to acquire all or at least a minimum portion of its CW Units for, at Cactus LLC&#x2019;s election, (x) shares of our Class A common stock at a redemption ratio of one share of Class A common stock for each CW Unit redeemed, subject to conversion rate adjustments for stock splits, stock dividends and reclassification and other similar transactions, or (y) an equivalent amount of cash. Alternatively, upon the exercise of the Redemption Right, Cactus Inc. (instead of Cactus LLC) will have the right (the &#x201c;Call Right&#x201d;) to acquire each tendered CW Unit directly from the exchanging CW Unit Holder for, at its election, (x) one share of Class A common stock, subject to conversion rate adjustments for stock splits, stock dividends and reclassifications and other similar transactions, or (y) an equivalent amount of cash. In connection with any redemption of CW Units pursuant to the Redemption Right or our Call Right, the corresponding number of shares of Class B common stock, par value $0.01 per share (&#x201c;Class B common stock&#x201d;), will be canceled. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Any exercise by Cactus LLC or Cactus Inc. of the right to acquire redeemed CW Units for cash must be approved by the board of directors of Cactus Inc. To date, neither Cactus Inc. nor Cactus LLC have elected to acquire CW Units for cash in connection with exchanges by CW Unit Holders. It is the policy of Cactus Inc. that any exercise by Cactus Inc. or Cactus LLC of the right to acquire redeemed CW Units for cash must be approved by a majority of those members of the board of directors of Cactus Inc. who have no interest in such transaction.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Since our IPO in February 2018, 43.9 million CW Units and a corresponding number of shares of Class B common stock have been redeemed in exchange for shares of Class A common stock. For more information regarding our IPO, see our Annual Report on Form 10-K for the year ended December 31, 2018. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 is a rollforward of ownership of legacy CW Units by CW Unit Holders for the three years ended December 31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:87.642%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.158%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;CW Units&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;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;CW Units held by legacy CW Unit Holders as of December 31, 2018&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,236&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;March 2019 Secondary Offering&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;(8,474)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other CW Unit redemptions&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;(804)&lt;/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;CW Units held by legacy CW Unit Holders as of December 31, 2019&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;27,958&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other CW Unit redemptions&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;(303)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;CW Units held by legacy CW Unit Holders as of December 31, 2020&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;27,655&#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 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;March 2021 Secondary Offering&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;(6,273)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cadent redemption in June 2021&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,292)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cadent redemption in September 2021&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;(715)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other CW Unit redemptions&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;(701)&lt;/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;CW Units held by legacy CW Unit Holders as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;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;16,674&#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-bottom:12pt;margin-top:7pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On March 19, 2019, Cactus Inc. entered into an underwriting agreement by and among Cactus Inc., Cactus LLC, certain selling stockholders of Cactus (the &#x201c;Selling Stockholders&#x201d;) and the underwriters named therein, providing for the offer and sale of Class A common stock by the Selling Stockholders (the &#x201c;March 2019 Secondary Offering&#x201d;). As described in the prospectus supplement dated March 19, 2019 and filed with the Securities and Exchange Commission on March 20, 2019, in connection with the March 2019 Secondary Offering, certain Selling Stockholders owning CW Units exercised their Redemption Right with respect to 8.5 million CW Units, together with a corresponding number of shares of Class B common stock, as provided in the Cactus LLC Agreement. The March 2019 Secondary Offering closed on March 21, 2019, at which time, in exercise of its Call Right, Cactus Inc. acquired the redeemed CW Units and a corresponding number of shares of Class B common stock (which shares of Class B common stock were then canceled) and issued 8.5 million shares of Class A common stock to the underwriters at the direction of the redeeming Selling Stockholders, as provided in the Cactus LLC Agreement. In addition, certain other Selling Stockholders sold 26 thousand shares of Class A common stock in the March 2019 Secondary Offering, which shares were owned by them directly prior to the closing of this offering. Cactus did not receive any of the proceeds from the sale of common stock in the March 2019 Secondary Offering, and there was no change in the &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:7pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;combined number of Cactus Inc. voting shares outstanding. Cactus incurred $1.0 million in offering expenses which were recorded in other income (expense), net, in the consolidated statements of income.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:7pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On March 9, 2021, Cactus Inc. entered into an underwriting agreement with Cactus LLC, certain selling stockholders of Cactus (the &#x201c;Selling Stockholders&#x201d;) and the underwriters named therein, providing for the offer and sale by the Selling Stockholders (the &#x201c;2021 Secondary Offering&#x201d;) of up to 6,325,000 shares of Class A common stock at a price to the underwriters of $30.555 per share. On March 12, 2021, in connection with the 2021 Secondary Offering, certain of the Selling Stockholders exercised their right to redeem 6,272,500 CW Units, together with a corresponding number of shares of Class B common stock, as provided in the Cactus Wellhead LLC Agreement. Upon the closing of the 2021 Secondary Offering, Cactus Inc. acquired the redeemed CW Units and a corresponding number of shares of Class B common stock (which shares of Class B common stock were then canceled) and issued 6,272,500 new shares of Class A common stock to the underwriters at the direction of the redeeming Selling Stockholders, as provided in the Cactus Wellhead LLC Agreement. In addition, certain other Selling Stockholders sold 52,500 shares of Class A common stock in the 2021 Secondary Offering, which shares were owned by them directly as of the time of the 2021 Secondary Offering. Cactus did not receive any of the proceeds from the sale of common stock in the 2021 Secondary Offering and incurred $0.4 million in expenses which were recorded in other expense, net, in the consolidated statements of income. There was no change in the combined number of Cactus Inc. voting shares outstanding as a result of the 2021 Secondary Offering.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On June 17, 2021, Cadent Energy Partners II, L.P. (&#x201c;Cadent&#x201d;) transferred ownership of 944,093 CW Units, together with a corresponding number of shares of Class B common stock, to its general partner, Cadent Energy Partners II - GP, L.P., (&#x201c;Cadent GP&#x201d;), and its manager, Cadent Management Services, LLC (&#x201c;Cadent Management&#x201d;). Cadent then redeemed its remaining 3.3&#160;million CW Units, together with a corresponding number of shares of Class B common stock, as provided in the Cactus Wellhead LLC Agreement. The redeemed CW Units (and the corresponding shares of Class B common stock) were canceled and Cactus Inc. issued 3.3&#160;million new shares of Class A common stock to Cadent, which then distributed such shares to its limited partners. Cactus received no proceeds from these events, and there was no change in the combined number of Cactus Inc. voting shares outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On September 13, 2021, Cadent GP and Cadent Management transferred their aggregate ownership of 228,878 CW Units, together with a corresponding number of shares of Class B common stock, to their respective owners, which included certain Cactus Inc. board members and executive management. The transfers were made at the discretion of Cadent GP and Cadent Management without the consent of the transferees. Additionally, Cadent GP and Cadent Management redeemed their remaining 715,215 CW Units held, together with a corresponding number of shares of Class B common stock, thus liquidating its ownership in Cactus Wellhead, LLC. These transactions were in accordance with the Cactus Wellhead LLC Agreement. The redeemed CW Units (and the corresponding shares of Class B common stock) were canceled and Cactus Inc. issued 715,215 new shares of Class A common stock. Cactus received no proceeds from these events, and there was no change in the combined number of Cactus Inc. voting shares outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:7pt;text-indent:36pt"&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 to the redemptions associated with the March 2019 Secondary Offering, the March 2021 Secondary Offering and the 2021 redemptions by Cadent and its affiliates, certain legacy CW Unit Holders redeemed 0.7 million, 0.3&#160;million and 0.8 million CW Units (together with a corresponding number of shares of Class B common stock) pursuant to the Redemption Right for the years ended December 31, 2021, 2020 and 2019, respectively. Cactus acquired the redeemed CW Units and a corresponding number of shares of Class B common stock (which shares of Class B common stock were then canceled) and issued 0.7&#160;million, 0.3 million and 0.8 million shares of Class A common stock to the redeeming CW Unit Holders during the same respective time periods. Pursuant to the TRA described in Note 9, CW Unit redemptions create additional TRA liability. As a result of all of the CW Unit redemptions during the years ended December 31, 2021, 2020 and 2019, Cactus Inc. increased its ownership in Cactus LLC and accordingly, increased its equity by approximately $79.4 million, $2.2 million and $48.7 million, respectively, from the non-controlling interest.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Dividends&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;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Aggregate cash dividends of $0.38, $0.36 and $0.09 per share of Class A common stock declared during the years ended December 31, 2021, 2020 and 2019 totaled $21.2 million, $17.4 million and $4.3 million, respectively. The fourth quarter of 2019 was the first quarter we declared and paid a dividend. Cash dividends paid during the years ended December 31, 2021, 2020 and 2019 totaled $21.2 million, $17.1 million and $4.2 million, respectively. Dividends accrue on unvested stock-based awards on the date of record and are paid upon vesting. Dividends are not paid to our Class B common stock holders; however, a corresponding distribution up to the same amount per share as our Class A common stockholders is paid to our CW Unitholders for any dividends declared on our Class A common stock. See Note 11 &#x201c;Related Party Transactions&#x201d; for further discussion of distributions made by Cactus LLC.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Limitation of Members&#x2019; Liability&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&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 terms of the Cactus Wellhead LLC Agreement, the members of Cactus LLC are not obligated for debt, liabilities, contracts or other obligations of Cactus&#160;LLC. Profits and losses are allocated to members as defined in the Cactus Wellhead LLC Agreement.&lt;/span&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight
      contextRef="id1c028c2dde14c139792bfef59a5925c_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzQ2MQ_c0984513-8b13-4ec5-aa1c-76d02e3497ec"
      unitRef="shares">1</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i5075e470d1fa43029ac043b976a87940_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzEyODc_498b3272-1b94-4928-b8a9-bdd6ec3feba1"
      unitRef="usdPerShare">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <whd:CommonUnitsRedeemed
      contextRef="ic33575fb6d594d809085e6944528c753_D20180201-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzE5MjQ_407a8900-04cb-4cc5-9b8c-8ef242d2e5e4"
      unitRef="shares">43900000</whd:CommonUnitsRedeemed>
    <whd:ScheduleOfCommonUnitsOutstandingRollForwardTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzczNTA_58838423-3912-4b02-876d-c5010d5312e7">&lt;div style="margin-bottom:3pt;text-indent:36pt"&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 is a rollforward of ownership of legacy CW Units by CW Unit Holders for the three years ended December 31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:87.642%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.158%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;CW Units&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;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;CW Units held by legacy CW Unit Holders as of December 31, 2018&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,236&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;March 2019 Secondary Offering&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;(8,474)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other CW Unit redemptions&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;(804)&lt;/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;CW Units held by legacy CW Unit Holders as of December 31, 2019&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;27,958&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other CW Unit redemptions&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;(303)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;CW Units held by legacy CW Unit Holders as of December 31, 2020&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;27,655&#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 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;March 2021 Secondary Offering&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;(6,273)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cadent redemption in June 2021&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,292)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cadent redemption in September 2021&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;(715)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other CW Unit redemptions&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;(701)&lt;/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;CW Units held by legacy CW Unit Holders as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;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;16,674&#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;</whd:ScheduleOfCommonUnitsOutstandingRollForwardTableTextBlock>
    <us-gaap:CommonUnitOutstanding
      contextRef="ibab9af5359784af9b4f85cfd55a31cab_I20181231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzYtMS0xLTEtMTcyODU_289d711e-c65a-43c0-8f25-10de64f35616"
      unitRef="shares">37236000</us-gaap:CommonUnitOutstanding>
    <whd:CommonUnitRedeemed
      contextRef="iff20bbd4d3b34ed9ab68b1963f4aaf2e_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzctMS0xLTEtMTcyODU_59066fa3-a25f-4502-9d50-7b4daccef0e5"
      unitRef="shares">8474000</whd:CommonUnitRedeemed>
    <whd:CommonUnitRedeemed
      contextRef="iae9172953f924af895e0ed343971fda3_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzgtMS0xLTEtMTcyODU_176df3f1-0556-41ae-9d21-8475232504a1"
      unitRef="shares">804000</whd:CommonUnitRedeemed>
    <us-gaap:CommonUnitOutstanding
      contextRef="ife2d6f3fae2b4e39891dddc47374ddeb_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzktMS0xLTEtMTcyODU_a91aeea3-56e0-48d8-96c0-b54891245995"
      unitRef="shares">27958000</us-gaap:CommonUnitOutstanding>
    <whd:CommonUnitRedeemed
      contextRef="ib718525dd0f145fb92d6edc6b4e747d2_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzEwLTEtMS0xLTE3Mjg1_bb3f449c-3d6b-48a6-bb27-8e91f0c35f94"
      unitRef="shares">303000</whd:CommonUnitRedeemed>
    <us-gaap:CommonUnitOutstanding
      contextRef="i042c27445eef4d269e93e1ed9135b34a_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzExLTEtMS0xLTE3Mjg1_76ee6bc3-d2c8-47d3-8041-a84159117e9a"
      unitRef="shares">27655000</us-gaap:CommonUnitOutstanding>
    <whd:CommonUnitRedeemed
      contextRef="i663f252f995a430cb638e4a0ea05867f_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzEyLTEtMS0xLTIyNjcx_2f4257cf-72f9-4a46-959a-97fcd2d40ba6"
      unitRef="shares">6273000</whd:CommonUnitRedeemed>
    <whd:CommonUnitRedeemed
      contextRef="ibf48a7c970c140baa8e00527685a78e9_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzktMS0xLTEtMjMyNjE_a9e59934-b15c-405b-b52e-760724068b3d"
      unitRef="shares">3292000</whd:CommonUnitRedeemed>
    <whd:CommonUnitRedeemed
      contextRef="ifd486319dc7343eea028184a4bccf8c5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzEwLTEtMS0xLTIzMjYx_68f7b382-50d4-42d2-812a-3ee5037b25fc"
      unitRef="shares">715000</whd:CommonUnitRedeemed>
    <whd:CommonUnitRedeemed
      contextRef="ice72561f6ead4885a0c98d489d7bc1ea_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzEzLTEtMS0xLTIyNjcx_b25aaf83-3ce5-43c2-9564-6e5e0903c5a6"
      unitRef="shares">701000</whd:CommonUnitRedeemed>
    <us-gaap:CommonUnitOutstanding
      contextRef="i655b6d1332a042ccaa667867cc072910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90YWJsZTo4YWQzMGFkOGRiYmE0MDhlYWViZTRjYWQzYzY1Y2I0NC90YWJsZXJhbmdlOjhhZDMwYWQ4ZGJiYTQwOGVhZWJlNGNhZDNjNjVjYjQ0XzE0LTEtMS0xLTIyNjcx_517be745-ebb8-4527-8e60-ce1a88e5f306"
      unitRef="shares">16674000</us-gaap:CommonUnitOutstanding>
    <whd:CommonUnitRedeemed
      contextRef="id59fa8a418c544b387130c9162cba75d_D20190320-20190320"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzc2OTY1ODE0MTAyODI_df898c5e-a0ce-421c-a706-0d9bd306f21f"
      unitRef="shares">8500000</whd:CommonUnitRedeemed>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="i240f47bcdd914bdcbdfc516d299f710b_D20190321-20190321"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzc2OTY1ODE0MTA2ODg_4cc2e4eb-b05a-4639-bde4-13d04dc04a7d"
      unitRef="shares">8500000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <whd:SharesSoldByOtherSellingStockholders
      contextRef="i6d2784640fbd4165bb92bb094a32ef8f_D20190320-20190320"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzc2OTY1ODE0MTA4OTM_e91c8348-63db-4a64-b4ea-c6a755338dbf"
      unitRef="shares">26000</whd:SharesSoldByOtherSellingStockholders>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="i9258d15917d545e2ad198c037e471799_D20190301-20190331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzc2OTY1ODE0MTExNzM_88944bce-00a4-437f-9a87-367a9bb5ae04"
      unitRef="usd">1000000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="i8b2ce9ac8bf0419490cce44895876f2b_D20210309-20210309"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk3ODQ_8151f853-6173-423b-bc22-4fc69decdf3d"
      unitRef="shares">6325000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:SaleOfStockPricePerShare
      contextRef="i3be941d883254384a39b8a175da6badc_I20210309"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk4MDQ_345b17b2-94ef-4d19-83fc-034ac8740cd3"
      unitRef="usdPerShare">30.555</us-gaap:SaleOfStockPricePerShare>
    <whd:CommonUnitsRedeemed
      contextRef="i0349da0482d24189a39dfb1522dd59fd_D20210312-20210312"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk4MTM_4840015b-156e-47a0-85d9-30f9f7cfc807"
      unitRef="shares">6272500</whd:CommonUnitsRedeemed>
    <whd:CommonUnitsRedeemed
      contextRef="i0349da0482d24189a39dfb1522dd59fd_D20210312-20210312"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk4MjQ_cc82612d-df9a-4700-bfda-dc77474763e8"
      unitRef="shares">6272500</whd:CommonUnitsRedeemed>
    <whd:SharesSoldByOtherSellingStockholders
      contextRef="i0349da0482d24189a39dfb1522dd59fd_D20210312-20210312"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk4MzU_5195de6c-44ea-4697-bfe6-4e61b91f7961"
      unitRef="shares">52500</whd:SharesSoldByOtherSellingStockholders>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="id741e60472294440a0fec0663fb6de58_D20210312-20210312"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzEwOTk1MTE2NDEwMjQ_00de32d7-058c-4bd9-86cc-40f1cc872348"
      unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="iba32ab72bc504f5aa957934968aca8ec_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzc2OTY1ODE0MTE0OTg_d5e8084d-9836-4b23-b9c6-71b188313526"
      unitRef="usd">400000</us-gaap:PaymentsOfStockIssuanceCosts>
    <whd:CommonUnitsTransferred
      contextRef="idaa133e6f19a48fc9f9467a9a20c4003_D20210617-20210617"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk4NDM_b51a78b9-30ac-4d63-b57b-1300ef184e74"
      unitRef="shares">944093</whd:CommonUnitsTransferred>
    <whd:CommonUnitsRedeemed
      contextRef="idaa133e6f19a48fc9f9467a9a20c4003_D20210617-20210617"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk4NTI_9d2c2d11-1cb5-42df-a923-04e598e249f8"
      unitRef="shares">3300000</whd:CommonUnitsRedeemed>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="ib5ea049b5355442d8f9b19d41be69de2_D20210617-20210617"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk4NjU_f251d62a-8e55-4cbb-b2b6-292badd58ec8"
      unitRef="shares">3300000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="idaa133e6f19a48fc9f9467a9a20c4003_D20210617-20210617"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzEwOTk1MTE2NDEwMzM_c627fa22-128a-45dc-b143-b59a975497d8"
      unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <whd:CommonUnitsTransferred
      contextRef="ida99bf729d894c52b703fd90769139b8_D20210913-20210913"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk4Nzg_d5bfc991-e2c6-4cfa-9777-4cf43a9c72bd"
      unitRef="shares">228878</whd:CommonUnitsTransferred>
    <whd:CommonUnitsRedeemed
      contextRef="ida99bf729d894c52b703fd90769139b8_D20210913-20210913"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk4ODc_219dab6f-dcde-4537-bcbb-ae4224479150"
      unitRef="shares">715215</whd:CommonUnitsRedeemed>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="i7847e568da144172b8b061872067ae9e_D20210913-20210913"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk4OTY_0dd68469-2637-43de-9164-8b9518ae619a"
      unitRef="shares">715215</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="i1d3bcc55c50b4a4dafaa9b998ae06093_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzc2OTY1ODE0MDY2MzI_fb237626-a1a8-4f60-81c3-8e03fe1ac4f0"
      unitRef="shares">700000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="i3c2a4416be6b406e881ad34d5d0dbfc2_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzUzNjE_95759c1c-4536-4080-8cb1-f968631c0e4f"
      unitRef="shares">300000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="ia603a272daf743a69fd8fccf64370b29_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzUzNjg_253a5f27-7ef3-41f7-842f-3b1ebe4886bb"
      unitRef="shares">800000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <whd:NumberOfSharesCanceled
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzc2OTY1ODE0MDY2NjI_07ca47e6-92a5-4675-a9ac-dd77b59b6ed2"
      unitRef="shares">700000</whd:NumberOfSharesCanceled>
    <whd:NumberOfSharesCanceled
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzU3MTY_ee313e75-05fb-41f2-a975-840a8a84e1bd"
      unitRef="shares">300000</whd:NumberOfSharesCanceled>
    <whd:NumberOfSharesCanceled
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzU3MjM_fb70cd96-d966-4d2e-9cc1-fdc06c34dcc5"
      unitRef="shares">800000</whd:NumberOfSharesCanceled>
    <whd:EquityReclassifiedToEntityFromNoncontrollingInterest
      contextRef="ic5b81607b24d4ea9acd539eb718c9eaf_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzYwNzI_548312f8-094b-4fda-b954-74a0f9dbb5b8"
      unitRef="usd">79400000</whd:EquityReclassifiedToEntityFromNoncontrollingInterest>
    <whd:EquityReclassifiedToEntityFromNoncontrollingInterest
      contextRef="i5c9bb4481bba4bf68562a2ebcfbe37a5_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzYwNzk_98badb5c-09c2-4831-bae1-0ec540d81155"
      unitRef="usd">2200000</whd:EquityReclassifiedToEntityFromNoncontrollingInterest>
    <whd:EquityReclassifiedToEntityFromNoncontrollingInterest
      contextRef="ib703272b26fd4917b164ff27c926f3fb_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzc2OTY1ODE0MDY3MjI_3590d18e-531b-4bba-ba4e-79fd0377a514"
      unitRef="usd">48700000</whd:EquityReclassifiedToEntityFromNoncontrollingInterest>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzYyMTA_409f006b-cde1-4f19-b7d9-32ec014fd483"
      unitRef="usdPerShare">0.38</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3NzkwNzQ_496de5bb-aa5a-460e-972d-cced1fcaea8b"
      unitRef="usdPerShare">0.36</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3NzkwNzE_6564df14-07b2-4333-b172-4c674fed4f20"
      unitRef="usdPerShare">0.09</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzYzMTM_646f18f6-108e-4d9c-a32d-9998a6e9d512"
      unitRef="usd">21200000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3NzkwODQ_17038556-2ab1-48d1-a537-812049a5f68c"
      unitRef="usd">17400000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="i3425588eaae7434aa55cd7494a79abf8_D20191201-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3NzkwOTE_61add575-aedd-422f-afc0-ce2d225bee43"
      unitRef="usd">4300000</us-gaap:DividendsCommonStockCash>
    <us-gaap:PaymentsOfDividends
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3NzkwODg_f8a032fb-88e8-40b4-a057-5caa013884b3"
      unitRef="usd">21200000</us-gaap:PaymentsOfDividends>
    <us-gaap:PaymentsOfDividends
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY0NzA_a4905fbf-913b-4353-8654-f2bdcc025f66"
      unitRef="usd">17100000</us-gaap:PaymentsOfDividends>
    <us-gaap:PaymentsOfDividends
      contextRef="i3425588eaae7434aa55cd7494a79abf8_D20191201-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMDkvZnJhZzo5MTM0MjdhMzRmMzg0M2I5YWMwNTNiNDQ2MTc1NzRiMC90ZXh0cmVnaW9uOjkxMzQyN2EzNGYzODQzYjlhYzA1M2I0NDYxNzU3NGIwXzY1OTcwNjk3Nzk1NTY_241060e4-e43e-4738-83a1-b246386bd15e"
      unitRef="usd">4200000</us-gaap:PaymentsOfDividends>
    <us-gaap:RelatedPartyTransactionsDisclosureTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzI4NzA_cf25321b-0844-4297-81d3-815fb213bc0e">Related Party Transactions&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;When needed, we rent a plane under dry-lease from a company owned by a member of Cactus LLC. These transactions are under short-term rental arrangements and the agreement governing these transactions does not qualify as a lease. We paid a base hourly rent of $1,750 per flight hour of use of the aircraft, payable monthly, for the hours of aircraft operation during the prior calendar month. During 2021, 2020 and 2019, expense recognized in connection with these rentals totaled $0.2 million, $0.1 million and $0.3 million, respectively. As of December&#160;31, 2021 and 2020, we owed less than $0.1 million&#160;to the related party which are included in accounts payable in the consolidated balance sheets.&#160;We are also responsible for employing pilots and fuel expenses. Our Chief Executive Officer and Chief Operating Officer paid the Company from $600 to $1,800/day for their personal use of the pilots employed by the Company, depending on how many company pilots are utilized for the day. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The TRA agreement is with certain direct and indirect holders of CW Units, including certain of our officers, directors and employees. These TRA Holders have the right in the future to receive 85% of the net cash savings, if any, in U.S. federal, state and local income tax and franchise tax that Cactus Inc. actually realizes or is deemed to realize in certain circumstances. The total liability from the TRA as of December&#160;31, 2021 was $281.6 million. We pay professional fees to assist with maintenance of the TRA which are reimbursable from the TRA Holders. As of December&#160;31, 2021 and 2020, $0.2 million was due from the TRA Holders for fees paid on their behalf. The balances are included in accounts receivable, net in the consolidated balance sheets.  &lt;/span&gt;&lt;/div&gt;Distributions made by Cactus LLC are generally required to be made pro&#160;rata among all its members. During the years ended December&#160;31, 2021, 2020 and 2019, Cactus LLC distributed&#160;$30.6 million, $27.8 million and $14.2 million, respectively, to Cactus Inc. to fund its dividend, TRA liability and estimated tax payments. During the years ended December 31, 2021, 2020 and 2019, Cactus LLC made pro rata distributions to the other members totaling $9.7 million, $16.3 million and $8.4 million, respectively.</us-gaap:RelatedPartyTransactionsDisclosureTextBlock>
    <whd:RelatedPartyTransactionsExpensesFromTransactionWithRelatedPartyHourlyRate
      contextRef="i740bae6e76104b548cb08c849a16a155_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzI5MQ_57f0bf56-a3cd-428a-ac40-d6d04945ad61"
      unitRef="usd">1750</whd:RelatedPartyTransactionsExpensesFromTransactionWithRelatedPartyHourlyRate>
    <us-gaap:RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty
      contextRef="i740bae6e76104b548cb08c849a16a155_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzUwMg_f99c0df1-e0a7-4da9-b103-5827555027ee"
      unitRef="usd">200000</us-gaap:RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty>
    <us-gaap:RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty
      contextRef="i94d63a5435804b64941efbd01227d0ff_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzUwNg_4cafe01a-20d7-4a1c-a6bd-fa4a023ab3ae"
      unitRef="usd">100000</us-gaap:RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty>
    <us-gaap:RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty
      contextRef="iaf09adf623c14baaabc1a6ace1764511_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzUxMw_181e297d-537e-47e4-a17f-b61003e38ba2"
      unitRef="usd">300000</us-gaap:RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty>
    <us-gaap:AccountsPayableRelatedPartiesCurrent
      contextRef="i34bfedd0e5b44dc58d8d30e7540bc675_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzU2Ng_401fab73-6ad0-4985-ad9e-30308df47f9b"
      unitRef="usd">100000</us-gaap:AccountsPayableRelatedPartiesCurrent>
    <us-gaap:AccountsPayableRelatedPartiesCurrent
      contextRef="i45c7acc364034b369ebdb79354ee69d4_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzU2Ng_b76088a5-b937-462a-adda-3febd32ff06b"
      unitRef="usd">100000</us-gaap:AccountsPayableRelatedPartiesCurrent>
    <us-gaap:RelatedPartyTransactionOtherRevenuesFromTransactionsWithRelatedParty
      contextRef="i1eb04535283746b2be57dddd8c1e7834_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzY1OTcwNjk3NzAxNTU_d94b1fdf-0e76-471b-9ab6-5f06a003d18a"
      unitRef="usd">600</us-gaap:RelatedPartyTransactionOtherRevenuesFromTransactionsWithRelatedParty>
    <us-gaap:RelatedPartyTransactionOtherRevenuesFromTransactionsWithRelatedParty
      contextRef="i9cf21e09b63d4c7aa7f07cfac5f799b5_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzEwOTk1MTE2MzA2NDg_ad60e5c3-9836-4319-b4e3-e0b353c0d833"
      unitRef="usd">1800</us-gaap:RelatedPartyTransactionOtherRevenuesFromTransactionsWithRelatedParty>
    <whd:TaxSavingsPayableToTraHoldersAsPercent
      contextRef="i13c7e246ea234f2ca7832bed006706ec_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzEwNDk_aac7c437-815c-4506-b147-785b1bd38ddc"
      unitRef="number">0.85</whd:TaxSavingsPayableToTraHoldersAsPercent>
    <us-gaap:OtherCommitment
      contextRef="ieb53504f721c40aa9265ae1a0019e21a_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzEyNzg_abe42ef6-6a2c-4d61-8719-ccb9a22cfdae"
      unitRef="usd">281600000</us-gaap:OtherCommitment>
    <us-gaap:DueFromRelatedPartiesCurrent
      contextRef="i0632bf93859c4dd7aa4264973409c72a_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzE0MTY_87b0330e-805b-4347-a0a5-a40750b1019a"
      unitRef="usd">200000</us-gaap:DueFromRelatedPartiesCurrent>
    <us-gaap:DueFromRelatedPartiesCurrent
      contextRef="ieb53504f721c40aa9265ae1a0019e21a_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzE0MTY_befad000-d0c4-44f8-9d0c-757a678d5714"
      unitRef="usd">200000</us-gaap:DueFromRelatedPartiesCurrent>
    <whd:DistributionReceivedFromSubsidiary
      contextRef="i5cdc0799ba504bfd8848d6a0e19bc1e7_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzE3MzM_092f5654-8ad0-426d-b316-d2b4a52fb25c"
      unitRef="usd">30600000</whd:DistributionReceivedFromSubsidiary>
    <whd:DistributionReceivedFromSubsidiary
      contextRef="i3fad4f8c53ea4c0692218b5e9addf629_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzY1OTcwNjk3NzA0NjU_d627ca97-687d-4ebb-ac39-aafd8366ff59"
      unitRef="usd">27800000</whd:DistributionReceivedFromSubsidiary>
    <whd:DistributionReceivedFromSubsidiary
      contextRef="iccf6939ba2fd40a08f8cef82b8be77da_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzY1OTcwNjk3NzA0NzY_6977e0e6-a8b5-4e94-8c4e-a06d880a5b74"
      unitRef="usd">14200000</whd:DistributionReceivedFromSubsidiary>
    <whd:DistributionMadeToLimitedLiabilityCompanyLlcMembersAfterIpo
      contextRef="i5cdc0799ba504bfd8848d6a0e19bc1e7_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzE4NzY_f29187ea-31be-464a-b51c-4f25a828a0d1"
      unitRef="usd">9700000</whd:DistributionMadeToLimitedLiabilityCompanyLlcMembersAfterIpo>
    <whd:DistributionMadeToLimitedLiabilityCompanyLlcMembersAfterIpo
      contextRef="i3fad4f8c53ea4c0692218b5e9addf629_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzY1OTcwNjk3NzA1MzI_4dc5597a-e99a-440e-89ac-bcbab79336b1"
      unitRef="usd">16300000</whd:DistributionMadeToLimitedLiabilityCompanyLlcMembersAfterIpo>
    <whd:DistributionMadeToLimitedLiabilityCompanyLlcMembersAfterIpo
      contextRef="iccf6939ba2fd40a08f8cef82b8be77da_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTIvZnJhZzo4OTAzOTMyOTRiNTY0MWFhYTgxMDcwMGUxMGE5YmExYS90ZXh0cmVnaW9uOjg5MDM5MzI5NGI1NjQxYWFhODEwNzAwZTEwYTliYTFhXzY1OTcwNjk3NzA1NDk_4d0badc2-067d-44e7-bace-dd04820f5194"
      unitRef="usd">8400000</whd:DistributionMadeToLimitedLiabilityCompanyLlcMembersAfterIpo>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTUvZnJhZzowYTZhNjMwZmRmNjE0YWI5OTMzYjY4M2NkYTUzNzcyZC90ZXh0cmVnaW9uOjBhNmE2MzBmZGY2MTRhYjk5MzNiNjgzY2RhNTM3NzJkXzI4Ng_24cd1993-df68-49ea-8f38-16867bf2097d">Commitments and ContingenciesWe are involved in various disputes arising in the ordinary course of business. Management does not believe the outcome of these disputes will have a material adverse effect on our consolidated financial position or consolidated results of operations.</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90ZXh0cmVnaW9uOmE4OTBjNDc1YmZjYTRiMDJhYmM3ZTQxMTdjNDIzYTI1XzEzODM_be81f2c6-eeeb-4975-8cbf-934f7aac1466">Earnings Per Share&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic earnings per share of Class A common stock is calculated by dividing the net income attributable to Cactus Inc. during the period by the weighted average number of shares of Class A common stock outstanding during the same period. Diluted earnings per share of Class A common stock is calculated by dividing the net income attributable to Cactus Inc. during that period by the weighted average number of common shares outstanding assuming all potentially dilutive shares were issued.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the if-converted method to determine the potential dilutive effect of outstanding CW Units (and corresponding shares of outstanding Class B common stock), the treasury stock method to determine the potential dilutive effect of unvested restricted stock units assuming that the proceeds will be used to purchase shares of Class A common stock and the contingently issuable share method to determine the potential dilutive effect of unvested performance stock units.&lt;/span&gt;&lt;/div&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 the basic and diluted earnings per share calculations:&lt;/span&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:66.443%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #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;2021&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;2020&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;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;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;&#160;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/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;Net income attributable to Cactus Inc.&#x2014;basic&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;49,593&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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,446&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;85,612&#160;&lt;/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;div style="text-indent:6.75pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net income attributable to non-controlling interest&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;19,934&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;56,012&#160;&lt;/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;div style="text-indent:6.75pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net income attributable to Cactus Inc.&#x2014;diluted&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;63,337&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;54,380&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;141,624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;Weighted average Class&#160;A shares outstanding&#x2014;basic&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;55,398&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;47,457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;44,983&#160;&lt;/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;text-indent:6.75pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Effect of dilutive shares&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;20,709&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,038&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,370&#160;&lt;/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;text-indent:6.75pt;vertical-align: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 average Class&#160;A shares outstanding&#x2014;diluted&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;76,107&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,353&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;Earnings per Class&#160;A share&#x2014;basic&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;0.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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.73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;1.90&#160;&lt;/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;div style="text-indent:6.75pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Earnings per Class&#160;A share&#x2014;diluted&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #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:3pt double #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;0.83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #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:3pt double #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;0.72&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #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:3pt double #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.88&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;(1)The numerator is adjusted in the calculation of diluted earnings per share under the if-converted method to include net income attributable to the non-controlling interest calculated as its pre-tax income adjusted for a corporate effective tax rate of 27.0% for the year ended December&#160;31, 2021 and 24.0% for the years ended December&#160;31, 2020 and 2019.</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90ZXh0cmVnaW9uOmE4OTBjNDc1YmZjYTRiMDJhYmM3ZTQxMTdjNDIzYTI1XzEzODQ_10f3b62b-90f0-4b17-a0db-d8a0b11f2cc2">&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 the basic and diluted earnings per share calculations:&lt;/span&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:66.443%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #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;2021&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;2020&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;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;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;&#160;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/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;Net income attributable to Cactus Inc.&#x2014;basic&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;49,593&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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,446&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;85,612&#160;&lt;/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;div style="text-indent:6.75pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net income attributable to non-controlling interest&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;19,934&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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;56,012&#160;&lt;/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;div style="text-indent:6.75pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net income attributable to Cactus Inc.&#x2014;diluted&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;63,337&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;54,380&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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 #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;141,624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;Weighted average Class&#160;A shares outstanding&#x2014;basic&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;55,398&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;47,457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;44,983&#160;&lt;/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;text-indent:6.75pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Effect of dilutive shares&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;20,709&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,038&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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,370&#160;&lt;/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;text-indent:6.75pt;vertical-align: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 average Class&#160;A shares outstanding&#x2014;diluted&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;76,107&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,353&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;Earnings per Class&#160;A share&#x2014;basic&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;0.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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.73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;1.90&#160;&lt;/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;div style="text-indent:6.75pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Earnings per Class&#160;A share&#x2014;diluted&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #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:3pt double #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;0.83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #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:3pt double #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;0.72&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #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:3pt double #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.88&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;(1)The numerator is adjusted in the calculation of diluted earnings per share under the if-converted method to include net income attributable to the non-controlling interest calculated as its pre-tax income adjusted for a corporate effective tax rate of 27.0% for the year ended December&#160;31, 2021 and 24.0% for the years ended December&#160;31, 2020 and 2019.</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzMtMS0xLTEtMTcyODU_320d897b-b02f-426f-baa3-37061776beaa"
      unitRef="usd">49593000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzMtMy0xLTEtMTcyODU_a86b1be0-30fd-45b7-8bed-efcd36b9acff"
      unitRef="usd">34446000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzMtNS0xLTEtMTcyODU_a2678541-a80d-4e79-a9b1-1ffc8a985384"
      unitRef="usd">85612000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzQtMS0xLTEtMTcyODU_b7555a19-a279-4b93-acf9-cf0987a29802"
      unitRef="usd">13744000</us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzQtMy0xLTEtMTcyODU_9e976b28-1d64-4ca4-a5a7-b0bcfec5c25c"
      unitRef="usd">19934000</us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzQtNS0xLTEtMTcyODU_bea2d75b-cb6e-4a07-aea9-fdddd2c56937"
      unitRef="usd">56012000</us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest>
    <whd:NetIncomeLossIncludingPortionAttributableToRedeemableNoncontrollingInterestDiluted
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzUtMS0xLTEtMTcyODU_bdc1c5d5-91d0-460c-83cc-736757cf8b03"
      unitRef="usd">63337000</whd:NetIncomeLossIncludingPortionAttributableToRedeemableNoncontrollingInterestDiluted>
    <whd:NetIncomeLossIncludingPortionAttributableToRedeemableNoncontrollingInterestDiluted
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzUtMy0xLTEtMTcyODU_47c06d26-108b-46e8-9446-fa2e7998b797"
      unitRef="usd">54380000</whd:NetIncomeLossIncludingPortionAttributableToRedeemableNoncontrollingInterestDiluted>
    <whd:NetIncomeLossIncludingPortionAttributableToRedeemableNoncontrollingInterestDiluted
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzUtNS0xLTEtMTcyODU_fa5672d7-48a9-4e98-9cc9-bb2cef4dd7f5"
      unitRef="usd">141624000</whd:NetIncomeLossIncludingPortionAttributableToRedeemableNoncontrollingInterestDiluted>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzctMS0xLTEtMTcyODU_b5396542-4c17-4988-9883-0a8fbb622d7c"
      unitRef="shares">55398000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzctMy0xLTEtMTcyODU_cd3cb5f6-7333-432d-a55f-eb29de1ef886"
      unitRef="shares">47457000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzctNS0xLTEtMTcyODU_5f91048d-9874-4823-afbc-b39115390ee9"
      unitRef="shares">44983000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzgtMS0xLTEtMTcyODU_d62d17ba-58d2-43bf-9f12-27c6cff7fde3"
      unitRef="shares">20709000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzgtMy0xLTEtMTcyODU_9124b717-d626-471b-b994-249859109c8c"
      unitRef="shares">28038000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzgtNS0xLTEtMTcyODU_d5a2ab4c-2d2c-42fe-a0cf-02d3806e84e8"
      unitRef="shares">30370000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzktMS0xLTEtMTcyODU_45229b31-7d60-4d6f-9ebf-a3d04c5b0ea2"
      unitRef="shares">76107000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzktMy0xLTEtMTcyODU_c1ddbb4a-ef66-427e-bb4a-d69553cb264a"
      unitRef="shares">75495000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzktNS0xLTEtMTcyODU_d07ba9e6-3b07-41b3-a884-213b8b369aa0"
      unitRef="shares">75353000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzExLTEtMS0xLTE3Mjg1_b3fba8de-35d4-4c31-8c6f-d1855ca6881a"
      unitRef="usdPerShare">0.90</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzExLTMtMS0xLTE3Mjg1_8d9dfb31-701d-410a-a23d-c22f8d9a34f2"
      unitRef="usdPerShare">0.73</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzExLTUtMS0xLTE3Mjg1_431d317b-f653-402c-ae66-d7d7c9b52d16"
      unitRef="usdPerShare">1.90</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzEyLTEtMS0xLTE3Mjg1_8592215e-2cf4-4293-a313-4c883a5cb39a"
      unitRef="usdPerShare">0.83</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzEyLTMtMS0xLTE3Mjg1_e4d44dcd-9528-488e-b144-8bef29ecf229"
      unitRef="usdPerShare">0.72</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90YWJsZTo4YjYzZGI3M2IyMmQ0MTg3YTkwZDQ4YzEwYmIzOTM1MC90YWJsZXJhbmdlOjhiNjNkYjczYjIyZDQxODdhOTBkNDhjMTBiYjM5MzUwXzEyLTUtMS0xLTE3Mjg1_0d43f972-c967-47e5-b047-0e7a528f9acc"
      unitRef="usdPerShare">1.88</us-gaap:EarningsPerShareDiluted>
    <whd:EffectiveIncomeTaxRateUsedForNoncontrollingInterestIncome
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90ZXh0cmVnaW9uOmE4OTBjNDc1YmZjYTRiMDJhYmM3ZTQxMTdjNDIzYTI1XzY1OTcwNjk3NjgzMjc_36e1b841-ba50-4827-8234-4209abfab7d3"
      unitRef="number">0.270</whd:EffectiveIncomeTaxRateUsedForNoncontrollingInterestIncome>
    <whd:EffectiveIncomeTaxRateUsedForNoncontrollingInterestIncome
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90ZXh0cmVnaW9uOmE4OTBjNDc1YmZjYTRiMDJhYmM3ZTQxMTdjNDIzYTI1XzY1OTcwNjk3NjgzMzU_08f828a4-0a1c-4421-9f3e-afd06b882486"
      unitRef="number">0.240</whd:EffectiveIncomeTaxRateUsedForNoncontrollingInterestIncome>
    <whd:EffectiveIncomeTaxRateUsedForNoncontrollingInterestIncome
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMTgvZnJhZzphODkwYzQ3NWJmY2E0YjAyYWJjN2U0MTE3YzQyM2EyNS90ZXh0cmVnaW9uOmE4OTBjNDc1YmZjYTRiMDJhYmM3ZTQxMTdjNDIzYTI1XzY1OTcwNjk3NjgzMzU_3d82a454-d977-49f3-b799-05504bc22f6c"
      unitRef="number">0.240</whd:EffectiveIncomeTaxRateUsedForNoncontrollingInterestIncome>
    <us-gaap:CashFlowSupplementalDisclosuresTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90ZXh0cmVnaW9uOjAwOWU1MmRjOWNkOTQ1MTM4NzY2Y2M5NDRiNzY2YmYzXzYwOQ_c0d6647b-dd38-4dfb-b333-6c66bf187d60">Supplemental Cash Flow Information&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Non-cash investing and financing activities were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Property and equipment acquired under finance leases&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;9,941&#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;2,973&#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;3,008&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Property and equipment in payables&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;405&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,052&#160;&lt;/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-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash paid for interest and income taxes was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash paid for interest&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;959&#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;959&#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,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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 paid for income taxes, net&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;4,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,301&#160;&lt;/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-bottom:12pt;margin-top:7pt;text-indent:36pt"&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 years ended December&#160;31, 2021, 2020 and 2019, we issued 11.0 million, 0.3 million and 9.3 million shares of Class A common stock, respectively, pursuant to redemptions of CW Units by holders thereof.&lt;/span&gt;&lt;/div&gt;</us-gaap:CashFlowSupplementalDisclosuresTextBlock>
    <us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90ZXh0cmVnaW9uOjAwOWU1MmRjOWNkOTQ1MTM4NzY2Y2M5NDRiNzY2YmYzXzYxMA_4f10980a-6211-4043-87fa-e88ad50959e8">&lt;div style="margin-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Non-cash investing and financing activities were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:12pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Property and equipment acquired under finance leases&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;9,941&#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;2,973&#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;3,008&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Property and equipment in payables&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;405&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,052&#160;&lt;/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-bottom:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash paid for interest and income taxes was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.297%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.280%"/&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.280%"/&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.283%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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:8pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:8pt;font-weight:700;line-height:100%"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash paid for interest&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;959&#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;959&#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,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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 paid for income taxes, net&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;4,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,301&#160;&lt;/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:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock>
    <us-gaap:CapitalLeaseObligationsIncurred
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZToyYTk4M2M0M2QyZmM0YjNmOTcwMjM2N2ViOTIwNGMwYS90YWJsZXJhbmdlOjJhOTgzYzQzZDJmYzRiM2Y5NzAyMzY3ZWI5MjA0YzBhXzItMS0xLTEtMTcyODU_8d933e6e-6f28-48b2-a898-830985b0fb0d"
      unitRef="usd">9941000</us-gaap:CapitalLeaseObligationsIncurred>
    <us-gaap:CapitalLeaseObligationsIncurred
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZToyYTk4M2M0M2QyZmM0YjNmOTcwMjM2N2ViOTIwNGMwYS90YWJsZXJhbmdlOjJhOTgzYzQzZDJmYzRiM2Y5NzAyMzY3ZWI5MjA0YzBhXzItMy0xLTEtMTcyODU_668cee4a-6111-4fd6-b3ca-b7c42ab5649e"
      unitRef="usd">2973000</us-gaap:CapitalLeaseObligationsIncurred>
    <us-gaap:CapitalLeaseObligationsIncurred
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZToyYTk4M2M0M2QyZmM0YjNmOTcwMjM2N2ViOTIwNGMwYS90YWJsZXJhbmdlOjJhOTgzYzQzZDJmYzRiM2Y5NzAyMzY3ZWI5MjA0YzBhXzItNS0xLTEtMTcyODU_4b5be720-6717-47c7-8fe9-d69d60877322"
      unitRef="usd">3008000</us-gaap:CapitalLeaseObligationsIncurred>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZToyYTk4M2M0M2QyZmM0YjNmOTcwMjM2N2ViOTIwNGMwYS90YWJsZXJhbmdlOjJhOTgzYzQzZDJmYzRiM2Y5NzAyMzY3ZWI5MjA0YzBhXzMtMS0xLTEtMTcyODU_1626a163-b8e2-4292-b61f-bab31cf2bf49"
      unitRef="usd">405000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZToyYTk4M2M0M2QyZmM0YjNmOTcwMjM2N2ViOTIwNGMwYS90YWJsZXJhbmdlOjJhOTgzYzQzZDJmYzRiM2Y5NzAyMzY3ZWI5MjA0YzBhXzMtMy0xLTEtMTcyODU_af004620-2bfd-4b0d-af6b-e79cf8dd1eb9"
      unitRef="usd">197000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZToyYTk4M2M0M2QyZmM0YjNmOTcwMjM2N2ViOTIwNGMwYS90YWJsZXJhbmdlOjJhOTgzYzQzZDJmYzRiM2Y5NzAyMzY3ZWI5MjA0YzBhXzMtNS0xLTEtMTcyODU_cca29958-b2d6-4a9f-bbbc-5451a16fa9a1"
      unitRef="usd">1052000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:InterestPaidNet
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZTozNTkxZWNiNDMwZTA0OWI2ODY0MzU2ZWEyZWFmYWYwMC90YWJsZXJhbmdlOjM1OTFlY2I0MzBlMDQ5YjY4NjQzNTZlYTJlYWZhZjAwXzItMS0xLTEtMTcyODU_de53c242-7ca9-424b-9556-aea414c523e4"
      unitRef="usd">959000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZTozNTkxZWNiNDMwZTA0OWI2ODY0MzU2ZWEyZWFmYWYwMC90YWJsZXJhbmdlOjM1OTFlY2I0MzBlMDQ5YjY4NjQzNTZlYTJlYWZhZjAwXzItMy0xLTEtMTcyODU_3ce94a51-05eb-4e95-85a0-3dd5c22c6184"
      unitRef="usd">959000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZTozNTkxZWNiNDMwZTA0OWI2ODY0MzU2ZWEyZWFmYWYwMC90YWJsZXJhbmdlOjM1OTFlY2I0MzBlMDQ5YjY4NjQzNTZlYTJlYWZhZjAwXzItNS0xLTEtMTcyODU_9068534f-9e21-414e-966b-90250859a338"
      unitRef="usd">1187000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaid
      contextRef="iab3d2b3cb68a4e6e85b912c086054a86_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZTozNTkxZWNiNDMwZTA0OWI2ODY0MzU2ZWEyZWFmYWYwMC90YWJsZXJhbmdlOjM1OTFlY2I0MzBlMDQ5YjY4NjQzNTZlYTJlYWZhZjAwXzMtMS0xLTEtMTcyODU_3e4f8ef4-cb0b-4708-b16f-c9d28a00b94f"
      unitRef="usd">4542000</us-gaap:IncomeTaxesPaid>
    <us-gaap:IncomeTaxesPaid
      contextRef="i6971012a40cd4b698f2ee4cd10f83eff_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZTozNTkxZWNiNDMwZTA0OWI2ODY0MzU2ZWEyZWFmYWYwMC90YWJsZXJhbmdlOjM1OTFlY2I0MzBlMDQ5YjY4NjQzNTZlYTJlYWZhZjAwXzMtMy0xLTEtMTcyODU_f1f06df6-866e-4015-a29b-0994407223d5"
      unitRef="usd">1600000</us-gaap:IncomeTaxesPaid>
    <us-gaap:IncomeTaxesPaid
      contextRef="ib9fe50e185ab43c9b498fc587c84372e_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90YWJsZTozNTkxZWNiNDMwZTA0OWI2ODY0MzU2ZWEyZWFmYWYwMC90YWJsZXJhbmdlOjM1OTFlY2I0MzBlMDQ5YjY4NjQzNTZlYTJlYWZhZjAwXzMtNS0xLTEtMTcyODU_51957ebf-b8ab-4d26-855e-74bd9e3b390d"
      unitRef="usd">5301000</us-gaap:IncomeTaxesPaid>
    <whd:StockIssuedShares
      contextRef="i2e5551553b134efdbf662c500760f8b5_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90ZXh0cmVnaW9uOjAwOWU1MmRjOWNkOTQ1MTM4NzY2Y2M5NDRiNzY2YmYzXzQ5OA_9f54e510-8140-4850-bf98-5d8576064cec"
      unitRef="shares">11000000.0</whd:StockIssuedShares>
    <whd:StockIssuedShares
      contextRef="i295b69488ba64cf0b9a7cfb4d030ef1c_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90ZXh0cmVnaW9uOjAwOWU1MmRjOWNkOTQ1MTM4NzY2Y2M5NDRiNzY2YmYzXzUwNQ_8c3dec37-3775-4c69-99f5-cdb743cc5426"
      unitRef="shares">300000</whd:StockIssuedShares>
    <whd:StockIssuedShares
      contextRef="i86cdce2b042c4001be6b2860ed0a0ae5_D20190101-20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjJkNzRmOTA2ZGMwODRhMDdhZjE3MGUwMDI2ZjdjM2U3L3NlYzoyZDc0ZjkwNmRjMDg0YTA3YWYxNzBlMDAyNmY3YzNlN18xMjEvZnJhZzowMDllNTJkYzljZDk0NTEzODc2NmNjOTQ0Yjc2NmJmMy90ZXh0cmVnaW9uOjAwOWU1MmRjOWNkOTQ1MTM4NzY2Y2M5NDRiNzY2YmYzXzY1OTcwNjk3Njc1OTI_50f67c3f-8a1b-4ed4-bff7-b64e6a20ceb1"
      unitRef="shares">9300000</whd:StockIssuedShares>
</xbrl>
