<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:appf="http://www.appfolio.com/20230331"
  xmlns:dei="http://xbrl.sec.gov/dei/2022"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2022"
  xmlns:us-gaap="http://fasb.org/us-gaap/2022"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="appf-20230331.xsd" xlink:type="simple"/>
    <context id="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i63299a39c51a405c91ff3580853abbc1_I20230420">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-20</instant>
        </period>
    </context>
    <context id="i424c32c39d2743bb8575fa764f3d582b_I20230420">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-20</instant>
        </period>
    </context>
    <context id="ia12ff552cdcd4067b85162ed34f60c1a_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i09073f90821a49fea6ec754c117a5eaf_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i01b070a9664146cf9fb336bb490e952a_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ida6c369fe6d342b4a8f2bb9453eca1f6_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="iead0e4cffdbc404686a559c51df71eda_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i42efdcf17e09461e83e584ac3765ec53_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i988b2c3147f94a779d228002efeaadc7_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i67e5b8b909f649ae8713ecb13476e8ab_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i46b6aa4943ba461fa7d94c6a10e1ed7e_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="iee7235f201b844ba92bcf1103de9fa84_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i352a2e1f50fe4e2392f3eed63bf19b1d_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i47686d398d6644f9a739a3d7120fb1c1_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="id03d28289b6d474ca83e9887f32957ad_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i535fa1614ee442bca2425ec6b05f5008_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i37c7c4d30dbd4b12b39b9486bb3f5a13_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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>2022-12-31</instant>
        </period>
    </context>
    <context id="ia645dc2c4dfb4e1abefd854ec8149aea_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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>2022-12-31</instant>
        </period>
    </context>
    <context id="iadb52ae1416a4461908d69628c4f9095_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i54786397df0a48daa2991db963be5443_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i39301203bb784b56873b884d4267f8a5_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i565c66d7810440649d7ef7be6c4dd545_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i8e6a7487a4fe43f0862aa890c253fece_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i60a98b0d6bed4abea99112f4df16af49_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i0cf2152166004b7dabcf7750754018ba_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i300fb345ad7e4971aef1521ee5ed7181_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="ic2c04b59310a434b97e0e3d82ee5be66_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i7f33ee5361404f13bcfa604134680171_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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>2023-03-31</instant>
        </period>
    </context>
    <context id="ie28fdab8c6dd45d7b822b1d188f5ce07_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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>2023-03-31</instant>
        </period>
    </context>
    <context id="i9c562037db544724a613e8009b7dd755_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ibd00c8b6befd482f812b506de6c2ee52_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i8a0105c2acd3449fb1937a10ba109d4f_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i8bb8394c00714612ad26d7a7bb1db5c3_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ifb79e3bff03b4da382fc1c8c5ae598ab_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="if8ed5a8d47e547f5b3cb5a7ee1ed7da3_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="iedab1718bd624b59bfdc60ce5180f889_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i4cb1742d44ef4ee7ae6c1efb250818db_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i885f20f976ff4629a1b7a921da50e47f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i8c0d9d6c2479435280087546300b8b2b_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="icea696c5a08d41169d61d6e806aed506_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="icaf8f7b3400240178fe014d852629ab3_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ie3dd8e82a6494bfca7da4a2ab2e54deb_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i2cce9478741c4463ad832194897c63d4_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ib18acbf085bf49798f2d08f339a3c892_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i158f85aaec0e4ec7ad0b5bb8d2441691_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ia7878f33e8fd420e9d14484e1194f1cc_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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>2022-03-31</instant>
        </period>
    </context>
    <context id="if6887124df8d4253bc7a3cc7235c3a7f_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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>2022-03-31</instant>
        </period>
    </context>
    <context id="i9b9040c767e14b49a856a903efd2858d_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i85a219589e9f4d20b7504be382e2cdf3_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i726538746ffe43df91f26f3b7d9eee24_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="ic0293b40a0824d74a58490c6d54c13e6_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="i252fb96782cd4ec7b8245cc2260e507e_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="id075e7e0d0774f9f8c67524821a9a734_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i7bdce1be37214564b5ee599dcb1a7ba0_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i7b060616aca041308d78d054b981bbc7_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ie47191e572f24c668e0085bf8e61c938_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="if3e4fbedb5cd48bda7edc7761d1efe07_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="icfa2a46de8864281b5177fabc699bf45_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="id42fdcd085d54fe4ad5a4a91ee3c1a77_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i901bef7701a34285b99ed009f614108a_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i436198f331684106b56a2412cd0165ed_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="id857fe26faaf49b790f2f946be13c886_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i402d878ffbdf4506bf9880e9396f111d_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i93f0595321f84a078fa656e57ea0e8b9_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i879e13a73cbd4e73bb43e519abd64fa2_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i9916cbe79b104fb5a3e8f4a2b322420e_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i40965b013e16453489dfd8cecb53b0fc_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ife9f33a41fa648828486e9531de87fd0_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i9fcd494ae4214bb5b9b93ee746fdbbf9_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="if5ea8a0eba394cdaaaf748e06755d285_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="if5ee4ed584454fafbfae091eb3c26094_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i509d96557846412d910841f429a94240_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i2d20e40ac61645319ef66e021e2777a1_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i041046e1f4054da1a43d858900103041_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="idae91140f806429eb864352b0a0104e2_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i7e4adca4627548779b336407478ac673_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i21e6a301f60748319299a6a70a139528_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ifde469999e7e4bb19c291ef00401ee75_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i1c320f4b2e254becbd4d55895658394b_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i1c24f8c8d6dd4148bcd3111d630d27fb_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i19ee7bd20f90446aa9d55d6c0d57e383_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i8c83f18031fc46f18eb2da4d992f3418_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ie4ef0b42684b4c25aaa53480fb6bb3af_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ib1e1429462614cd1be6270bb01e572e6_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i413fe83142c14dcdb1421bbb3d330efc_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i50b8e2f1f0ab42e19bd905347dd7051a_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i3a0445a759274d36a2503f5aa6012b40_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i720b3f7c72584c9482c746c9c0d8417c_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ie07919bdcdd44859b9a282f4fb35d10f_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i93fc16f6f6c74582b647adb057272887_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i87e0f6978e784ce490597da9adf626f2_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i831796bfa867481ea2dddde150e8d861_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i1c817977783f4d86bf8816f541bdc628_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i400afc4fffcd41168d72dd579b846b49_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i330b9948b73f4203964db46e6fffa38c_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="iba3313206fb64bb29df51a78c2c61d95_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ib776fce6eeb84cb99d5d9c8726ae2971_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i5f44f755dc3c4be8860ba7d3c02af6b4_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i75aa28e7510a4108a79cd4b165895b29_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i695a55d9f978464db80875027bdfa9a4_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i418367ed21a04e63a92e9a2183c751e1_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i2db78fdfe72e48219a44c5f0308a860e_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:DatabaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i5709bd053c2e40c19dc0d3ca5e7b89d7_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:DatabaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i32e8d79981d842a1907e35d173cbd288_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ic5ef5f32a9eb4de5ae364a6ea9b31acd_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i2bf3a885b8c0459db94d3a82d02ce1f0_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ie08b859d917b4f178047a6fa5a82e9bc_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="if7838acbbcd6487685e898320993e2d3_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:PartnerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i68ebf6455ec747eab08eab18fadf2ef9_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:PartnerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i9f2986b82f954ee7b16c2f4df0b6b40c_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ib41559f2f3ab4d448670535ed76f4f49_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i51ff67078ea1417b8f34dc6a7d8c1783_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InternetDomainNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i0a259d91d18c4f21971378261625510f_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InternetDomainNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i46783fc4476b44f4b20a9641bc01e3ea_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i8c605ad74b2048e9b0c49cb706286075_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i8ae9a86d293048e2a8fa818c8c548587_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i6802058b2dbc4d8bac67590677846744_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i44dce1f0562d4bab977f4c16410d3e0d_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="iaf38953230cd4a0fa5ec92d6aa9139df_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:DatabaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i0e3f4e9c1aa64f86a8eb15eb1f2b67b5_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:DatabaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i429f3366afb949948e541a28dfad68d5_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ib88eb74488ae4d4f94483fc103356b5e_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ib3a0734dbf5a4532aac96276c07ed536_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="iae51552702f348c38f87e51628ca3add_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="if3bb3eea3d82438b9daaaecfe164d2f7_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:PartnerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i6e40c6c4d8454fb89de76800b80376c5_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:PartnerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="if0a79f958672449983c2ecea88344224_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i9cf9449d9d9342a08e8c549bf5eb4d39_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i5b9e2c9ea8824dda98d6a27ecde3e62d_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InternetDomainNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="icfd32bcc6a5a4c9c8a468f15007aa286_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InternetDomainNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i68a159f3fd8a4c4ea4a294ea0de3c3b9_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i708b94bf03dc480ba603182d40f6f517_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="iccb2d94a3a8c4b15a802e5e1c3b6748b_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ib56349205d674d00923bc8ff0b5d7c33_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="icbb5ffc9118444ae8451e25e962cf867_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i2514c942fa9e4b74a3d12f0d7e1df99b_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ibc1f6a1997aa4953b2c2239c95b5aa8f_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i5b02a9147fa04e5490a4959d976fac7a_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i72081dc7eb264f67abaf984979c6617f_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i1ae6951366504997a236243706e18972_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="iaa13ec006aad49779b040e7250d912c7_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i93914509669d4b9d81b73e3c6a5f379d_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ifeb9c201480b415698770f323fa9544b_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsWithServiceConditionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="if9e2d559463e477da1a88123a05320b7_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsWithServiceAndPerformanceConditionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ide9c281c9eb94b2bbd55518c6e31ee0b_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsWithServiceConditionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i844614d3155f4ea6a6172fa0cdbe2f8c_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i58843db26f6f4d8abc3672ec8cd879e7_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="iafb86510818b4d6cbe3509ab230aff7e_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i4563ac54a6d04512a91fc58b246a579a_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ie0d227e4af8d450788deb47ce4a7a803_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i5611c3b05cb1410a83662826223d8424_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ieaf6ddde2d054d8aac19ae5b682199fc_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ic085a8b8a2e345b3960f3116aa7a115b_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="id9709acb3d0d45e28a125562b6e644fe_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ice07b53875b34003b3d191acf3014d83_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i89ed7363ab2348d0b904e9794c54d237_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="ib213bc7a3bd2451ea8c8d97dfef232ec_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsAndPerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="ic08c0d6be2d044bd98e76a6de65d363f_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsAndPerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ie4a508fc67914fbaa0dbde86f466f326_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsAndPerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ib26212a7dbbb4100a5ad2c1b6db14afd_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i76d72e2d37e44743986448da86fb77ea_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i58721445f7e644dcab9b07928dd45e86_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i3d1cf25933fb4cd0b7410e106901b6cc_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i86130c871a6b4768a20881fed81983fb_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i2f355098ffea4c188386e951f48d9ab6_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i12bcc35cd71449e7afe74064b1538bbd_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:CoreSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i4e09c982c7064d2bbd366d81edc184db_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:CoreSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="id491169af50049479b2d3de2296db122_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:ValuePlusServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i3f8b1839db6c46b2b1cdc59399c3e9a2_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:ValuePlusServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="ic7ec1f0571be4be08bd73bbb751a15de_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:OtherServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i851bfd590a724c0dadcfb4b042d3d815_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:OtherServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i3fccfab8fba248cba3ed502d875681fb_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2023-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <dei:EntityCentralIndexKey
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80L2ZyYWc6OGU2NjZiYTY0NDcwNDE2ZmJhNWU5MTU1MmMyNTJhNjQvdGFibGU6YmNlOTlkYjEyOWQ4NDA5ZGIwYjA4OTgwODY2ZjkyNmIvdGFibGVyYW5nZTpiY2U5OWRiMTI5ZDg0MDlkYjBiMDg5ODA4NjZmOTI2Yl8xLTEtMS0xLTI1NTMzOA_3bb778ea-8cda-42e0-8288-f32654b86483">0001433195</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80L2ZyYWc6OGU2NjZiYTY0NDcwNDE2ZmJhNWU5MTU1MmMyNTJhNjQvdGFibGU6YmNlOTlkYjEyOWQ4NDA5ZGIwYjA4OTgwODY2ZjkyNmIvdGFibGVyYW5nZTpiY2U5OWRiMTI5ZDg0MDlkYjBiMDg5ODA4NjZmOTI2Yl8yLTEtMS0xLTI1NTMzOA_a83ca5fb-f25f-418b-8976-43596e71230b">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80L2ZyYWc6OGU2NjZiYTY0NDcwNDE2ZmJhNWU5MTU1MmMyNTJhNjQvdGFibGU6YmNlOTlkYjEyOWQ4NDA5ZGIwYjA4OTgwODY2ZjkyNmIvdGFibGVyYW5nZTpiY2U5OWRiMTI5ZDg0MDlkYjBiMDg5ODA4NjZmOTI2Yl82LTEtMS0xLTI1NTMzOA_3b564410-e86a-4317-89b1-0f1b1a86530b">2023</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80L2ZyYWc6OGU2NjZiYTY0NDcwNDE2ZmJhNWU5MTU1MmMyNTJhNjQvdGFibGU6YmNlOTlkYjEyOWQ4NDA5ZGIwYjA4OTgwODY2ZjkyNmIvdGFibGVyYW5nZTpiY2U5OWRiMTI5ZDg0MDlkYjBiMDg5ODA4NjZmOTI2Yl83LTEtMS0xLTI1NTMzOA_badb0844-2320-4c8c-ad32-1c2dd70fb2c3">Q1</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80L2ZyYWc6OGU2NjZiYTY0NDcwNDE2ZmJhNWU5MTU1MmMyNTJhNjQvdGFibGU6YmNlOTlkYjEyOWQ4NDA5ZGIwYjA4OTgwODY2ZjkyNmIvdGFibGVyYW5nZTpiY2U5OWRiMTI5ZDg0MDlkYjBiMDg5ODA4NjZmOTI2Yl84LTEtMS0xLTI1NTMzOA_192ccfee-f541-45fb-b7f8-b27213d80ac9">false</dei:AmendmentFlag>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="ib56349205d674d00923bc8ff0b5d7c33_I20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RleHRyZWdpb246MWMyYzIxYTFjOWE3NDRlNTliOTc2NGY4Mjk0MWZiYjVfOTQ_7973cd48-30b9-4eb0-abf7-f64057bf6a6e">P1Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfNi0wLTEtMS0yNTUzMzg_80563548-93d2-4487-9099-faee055246e3">http://fasb.org/us-gaap/2022#OtherLiabilitiesCurrent</us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="iafb86510818b4d6cbe3509ab230aff7e_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTAwOA_06ed9130-4af8-4a3c-826b-64c924792a9f">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <appf:ShareBasedCompensationArrangementByShareBasedPaymentAwardMeasurementPeriod
      contextRef="iafb86510818b4d6cbe3509ab230aff7e_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTQ0Mg_d82b3743-e8e1-47d6-9989-4519bfa5794f">P3Y</appf:ShareBasedCompensationArrangementByShareBasedPaymentAwardMeasurementPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="i3d1cf25933fb4cd0b7410e106901b6cc_D20230101-20230331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MzEvZnJhZzo0YTAzODdjYjk1Y2M0YzIzODlkNTliMWY4NjNmY2Q2Zi90ZXh0cmVnaW9uOjRhMDM4N2NiOTVjYzRjMjM4OWQ1OWIxZjg2M2ZjZDZmXzY1OTcwNjk3NjY2OTM_12d40f79-d27c-4d40-958d-2412d5c94eef"
      unitRef="number">0.3333</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="i86130c871a6b4768a20881fed81983fb_D20230101-20230331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MzEvZnJhZzo0YTAzODdjYjk1Y2M0YzIzODlkNTliMWY4NjNmY2Q2Zi90ZXh0cmVnaW9uOjRhMDM4N2NiOTVjYzRjMjM4OWQ1OWIxZjg2M2ZjZDZmXzY1OTcwNjk3NjY2OTM_78fd9ab9-9fb1-4f05-aaed-c3dc1fc2844d"
      unitRef="number">0.3333</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="i2f355098ffea4c188386e951f48d9ab6_D20230101-20230331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MzEvZnJhZzo0YTAzODdjYjk1Y2M0YzIzODlkNTliMWY4NjNmY2Q2Zi90ZXh0cmVnaW9uOjRhMDM4N2NiOTVjYzRjMjM4OWQ1OWIxZjg2M2ZjZDZmXzY1OTcwNjk3NjY2OTM_ab2ab0f3-6ef4-4264-8f07-9c4305afd497"
      unitRef="number">0.3333</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <dei:DocumentType
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzI2_fe9b50df-5c23-4d39-bd37-28bc275a8bcf">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzIx_5f60cbcd-3b61-4e8d-b059-54774a530469">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzM_f05eafbc-a69a-4e3a-b591-89ac20308d06">2023-03-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzIy_1aaee3c7-be54-4da4-8612-edad92c074f9">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzI3_a63e9d8e-dcbb-48a0-9d61-b2d615099d4d">001-37468</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzIz_7be05e8e-4e35-48c4-97bb-fb0e0f8e4030">AppFolio, Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6YmMyODRiNmY1NzQwNGU4ODkzYTEwNTc5ZDMxYzk3MjIvdGFibGVyYW5nZTpiYzI4NGI2ZjU3NDA0ZTg4OTNhMTA1NzlkMzFjOTcyMl8wLTAtMS0xLTI1NTMzOA_bc622188-9098-45bf-a6ac-2718b5a42945">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6YmMyODRiNmY1NzQwNGU4ODkzYTEwNTc5ZDMxYzk3MjIvdGFibGVyYW5nZTpiYzI4NGI2ZjU3NDA0ZTg4OTNhMTA1NzlkMzFjOTcyMl8wLTQtMS0xLTI1NTMzOA_8184a254-b5fa-4b09-a971-ecd88897d688">26-0359894</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6YmMyODRiNmY1NzQwNGU4ODkzYTEwNTc5ZDMxYzk3MjIvdGFibGVyYW5nZTpiYzI4NGI2ZjU3NDA0ZTg4OTNhMTA1NzlkMzFjOTcyMl8zLTAtMS0xLTI1NTMzOA_dc3c661e-868a-4e1d-888e-14a63b844bb2">70 Castilian Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressPostalZipCode
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6YmMyODRiNmY1NzQwNGU4ODkzYTEwNTc5ZDMxYzk3MjIvdGFibGVyYW5nZTpiYzI4NGI2ZjU3NDA0ZTg4OTNhMTA1NzlkMzFjOTcyMl8zLTQtMS0xLTI1NTMzOA_d31d1940-109d-48be-b1f6-0c9c212018fa">93117</dei:EntityAddressPostalZipCode>
    <dei:EntityAddressCityOrTown
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6YmMyODRiNmY1NzQwNGU4ODkzYTEwNTc5ZDMxYzk3MjIvdGFibGVyYW5nZTpiYzI4NGI2ZjU3NDA0ZTg4OTNhMTA1NzlkMzFjOTcyMl80LTAtMS0xLTI1NTMzOA_94c04d0d-2fa8-4e4d-9e52-9f3437feeb81">Santa Barbara,</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6YmMyODRiNmY1NzQwNGU4ODkzYTEwNTc5ZDMxYzk3MjIvdGFibGVyYW5nZTpiYzI4NGI2ZjU3NDA0ZTg4OTNhMTA1NzlkMzFjOTcyMl80LTItMS0xLTI1NTMzOA_502e5b7d-ee11-4970-90ab-d88a8841bd83">CA</dei:EntityAddressStateOrProvince>
    <dei:CityAreaCode
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzE4_d00beedc-261a-4ec5-b322-8ead6dcdc93d">805</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzE5_ea794480-2472-4e4e-95d7-49a52202431f">364-6093</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6NWQzMjI5ZDI1N2YxNDc5Mzg0MGI5OTBmNWEzYjI0NjIvdGFibGVyYW5nZTo1ZDMyMjlkMjU3ZjE0NzkzODQwYjk5MGY1YTNiMjQ2Ml8xLTAtMS0xLTI1NTMzOA_e2d9aac3-4bfa-45ea-a0e4-16ba08804815">Class A common stock, $0.0001 par value</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6NWQzMjI5ZDI1N2YxNDc5Mzg0MGI5OTBmNWEzYjI0NjIvdGFibGVyYW5nZTo1ZDMyMjlkMjU3ZjE0NzkzODQwYjk5MGY1YTNiMjQ2Ml8xLTEtMS0xLTI1NTMzOA_121e8c7d-c355-49dc-b093-3acb077d529e">APPF</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6NWQzMjI5ZDI1N2YxNDc5Mzg0MGI5OTBmNWEzYjI0NjIvdGFibGVyYW5nZTo1ZDMyMjlkMjU3ZjE0NzkzODQwYjk5MGY1YTNiMjQ2Ml8xLTItMS0xLTI1NTMzOA_5891df2d-848e-4998-87d5-5b0d30a1ec15">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzI0_7bca0181-9d8f-427f-a317-3bc2aae86a60">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzI1_eae8f788-866d-4797-a76c-7e1a3c3a202f">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6ZjM2NzQzYWZlYmRkNDkyNDhiMWQ1NGM5MTVmMTg5YjcvdGFibGVyYW5nZTpmMzY3NDNhZmViZGQ0OTI0OGIxZDU0YzkxNWYxODliN18wLTAtMS0xLTI1NTMzOA_6cc61be8-e619-4098-988f-044ebf3dad2c">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6ZjM2NzQzYWZlYmRkNDkyNDhiMWQ1NGM5MTVmMTg5YjcvdGFibGVyYW5nZTpmMzY3NDNhZmViZGQ0OTI0OGIxZDU0YzkxNWYxODliN18yLTUtMS0xLTI1NTMzOA_073ef567-cac6-4f3e-8683-3ca1366036a9">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGFibGU6ZjM2NzQzYWZlYmRkNDkyNDhiMWQ1NGM5MTVmMTg5YjcvdGFibGVyYW5nZTpmMzY3NDNhZmViZGQ0OTI0OGIxZDU0YzkxNWYxODliN180LTUtMS0xLTI1NTMzOA_fb721d4f-3ec4-4864-be6f-a5e3e440392c">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzIw_306b06d8-46dc-4c84-94a5-defbbd6aef9a">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i63299a39c51a405c91ff3580853abbc1_I20230420"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMjMx_a05e8fbf-b225-4203-9a01-661fdbc6997e"
      unitRef="shares">20766610</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i424c32c39d2743bb8575fa764f3d582b_I20230420"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xL2ZyYWc6MmE4ZmExMjI4OWFjNGYwOThkNjA4YTU0MDJjZmYxMjUvdGV4dHJlZ2lvbjoyYThmYTEyMjg5YWM0ZjA5OGQ2MDhhNTQwMmNmZjEyNV8yMzE2_2f837698-e77f-47c0-9af8-2a0a99ac2dc0"
      unitRef="shares">14719225</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMy0yLTEtMS0yNTUzMzg_30a33023-6a75-4a92-b091-b61a43fdd01f"
      unitRef="usd">103925000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMy00LTEtMS0yNTUzMzg_99721861-3147-401a-89da-1505cf704573"
      unitRef="usd">70769000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNC0yLTEtMS0yNTUzMzg_badfd0c2-68a5-40e8-87c0-7feb977b6d63"
      unitRef="usd">65022000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNC00LTEtMS0yNTUzMzg_7f0fd7bb-1ef4-4e08-a855-4843c1ed0eaf"
      unitRef="usd">89297000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNS0yLTEtMS0yNTUzMzg_639c9527-8f01-46cc-94bb-43682918df0c"
      unitRef="usd">17416000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNS00LTEtMS0yNTUzMzg_35e0fb7c-0904-4877-bcae-03ab144f83fd"
      unitRef="usd">16503000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNi0yLTEtMS0yNTUzMzg_be829471-112a-4cbe-8bfa-5e99db212aec"
      unitRef="usd">25515000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNi00LTEtMS0yNTUzMzg_c4b099d6-c5c4-48eb-b79b-dc3cccc27697"
      unitRef="usd">24899000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNy0yLTEtMS0yNTUzMzg_028f7878-b9a9-4dc1-9530-1c44b9e04718"
      unitRef="usd">211878000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNy00LTEtMS0yNTUzMzg_ef901a63-e97e-4730-b0dc-cc6141c5d0ae"
      unitRef="usd">201468000</us-gaap:AssetsCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestNoncurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfOC0yLTEtMS0yNTUzMzg_d2c34d61-9467-4233-b61a-6b94d3b4cf63"
      unitRef="usd">12723000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestNoncurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestNoncurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfOC00LTEtMS0yNTUzMzg_0cc7a110-750f-400a-aef4-6e5a7039e37f"
      unitRef="usd">25161000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestNoncurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfOS0yLTEtMS0yNTUzMzg_f50dd98f-c18b-469c-bc0f-ff0c8abf462d"
      unitRef="usd">25789000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfOS00LTEtMS0yNTUzMzg_e2aa9a17-b710-4e1b-b73c-8188a6403230"
      unitRef="usd">26110000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTAtMi0xLTEtMjU1MzM4_9ecc62dd-df10-4a8d-9595-aa2c46bc4de3"
      unitRef="usd">20849000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTAtNC0xLTEtMjU1MzM4_6c2c4e6e-fdd3-4d04-bdbd-727e61f2d3ce"
      unitRef="usd">23485000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTEtMi0xLTEtMjU1MzM4_50c2b876-4f78-4dab-9415-cacbad3e0487"
      unitRef="usd">30467000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTEtNC0xLTEtMjU1MzM4_5d375c43-8d3f-482d-ac53-76262d895fab"
      unitRef="usd">35315000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:Goodwill
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTItMi0xLTEtMjU1MzM4_3da43b3f-0efc-42af-85d8-9d4cd9790cd0"
      unitRef="usd">56060000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTItNC0xLTEtMjU1MzM4_3b0bda57-55b1-46c3-8bf2-1001f8712434"
      unitRef="usd">56060000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTMtMi0xLTEtMjU1MzM4_e47cbcb2-2495-413e-82ee-255809d5a49e"
      unitRef="usd">4214000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTMtNC0xLTEtMjU1MzM4_2b0f77f8-0155-4f7a-a4ce-1339d405af56"
      unitRef="usd">4833000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTUtMi0xLTEtMjU1MzM4_d657bc16-b4c1-413f-9ccf-09b827fda437"
      unitRef="usd">8720000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTUtNC0xLTEtMjU1MzM4_e38fd0f3-79ab-46f8-bbf2-cf4eedef6fa2"
      unitRef="usd">8785000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTYtMi0xLTEtMjU1MzM4_0c1b5f9f-767d-4b21-94af-c7253b1acf14"
      unitRef="usd">370700000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTYtNC0xLTEtMjU1MzM4_a0b3388d-e2ef-4cd2-b72f-c639459661ef"
      unitRef="usd">381217000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTktMi0xLTEtMjU1MzM4_4219858a-ea3b-409d-8dbe-6c3d8ecd2f19"
      unitRef="usd">740000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMTktNC0xLTEtMjU1MzM4_6d81333f-d766-450b-be57-fd8d95802ec1"
      unitRef="usd">2473000</us-gaap:AccountsPayableCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMjAtMi0xLTEtMjU1MzM4_0836589e-eb82-461f-98a4-943322358160"
      unitRef="usd">47087000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMjAtNC0xLTEtMjU1MzM4_cc542a86-a879-4ee0-a7f4-20f62680a204"
      unitRef="usd">34376000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMjEtMi0xLTEtMjU1MzM4_af84e7d3-8c82-4665-b32d-2b156a5f6c80"
      unitRef="usd">18029000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMjEtNC0xLTEtMjU1MzM4_2cc4ae08-7fd7-462b-a67c-f40016f16358"
      unitRef="usd">15601000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMjQtMi0xLTEtMjU1MzM4_d17d2151-bd70-4821-8dd3-769373380a32"
      unitRef="usd">13971000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMjQtNC0xLTEtMjU1MzM4_1fae6dd4-cda5-45d7-9bea-cd2b55a2d467"
      unitRef="usd">8893000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMjYtMi0xLTEtMjU1MzM4_25e49bca-4ff0-4c82-ba1f-42d9eb9c14d5"
      unitRef="usd">79827000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMjYtNC0xLTEtMjU1MzM4_d81a1311-7c6a-4c94-96f9-c89c1d65d95b"
      unitRef="usd">61343000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMjktMi0xLTEtMjU1MzM4_6f3544cb-1f15-4edb-9265-cfd85509a6fe"
      unitRef="usd">45257000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMjktNC0xLTEtMjU1MzM4_d7593190-70e0-4bf7-a646-161906f8ab6c"
      unitRef="usd">50237000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMzMtMi0xLTEtMjU1MzM4_1c65a61f-9bc7-4ae2-87c3-a92adb6b508f"
      unitRef="usd">5047000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMzMtNC0xLTEtMjU1MzM4_1a5814e5-87b8-48f0-92ac-cf70fcb47759"
      unitRef="usd">4091000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMzQtMi0xLTEtMjU1MzM4_d019a1ed-4f59-45a7-9650-c0a3557ec315"
      unitRef="usd">130131000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMzQtNC0xLTEtMjU1MzM4_a2a98a0d-eae6-45bf-953a-c7a11fbeffa2"
      unitRef="usd">115671000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMzUtMi0xLTEtMjU1MzM4_9be6424e-4812-43d3-b3c1-07f68b2c981a"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMzUtNC0xLTEtMjU1MzM4_775dd164-295e-43a6-a21f-af4d3f126603"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommonStockValue
      contextRef="i01b070a9664146cf9fb336bb490e952a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMzgtMi0xLTEtMjU1MzM4_59b4dfb1-90b6-404a-b5cf-f88d934f9cb3"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="ida6c369fe6d342b4a8f2bb9453eca1f6_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMzgtNC0xLTEtMjU1MzM4_0f249f4c-b0d2-411c-829e-69f13e78de71"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="iead0e4cffdbc404686a559c51df71eda_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMzktMi0xLTEtMjU1MzM4_688e88aa-1a75-454f-8383-5b85272c488a"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="i42efdcf17e09461e83e584ac3765ec53_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfMzktNC0xLTEtMjU1MzM4_c16b3f1f-aa19-4d29-a7a4-981c4ec23129"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDAtMi0xLTEtMjU1MzM4_86e6dbce-4e7a-40a8-91a7-f692c8a46ad4"
      unitRef="usd">219074000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDAtNC0xLTEtMjU1MzM4_8f4d8200-9b87-488e-81c6-77201013bc84"
      unitRef="usd">209704000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDEtMi0xLTEtMjU1MzM4_aa1d0892-83b2-4039-9417-49a56e24b623"
      unitRef="usd">-921000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDEtNC0xLTEtMjU1MzM4_1104ecc9-97be-4d12-8f2a-21eca281d787"
      unitRef="usd">-1684000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:TreasuryStockValue
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDItMi0xLTEtMjU1MzM4_068400f1-665a-4126-8ab4-06b61bdc6891"
      unitRef="usd">25756000</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDItNC0xLTEtMjU1MzM4_6669ca98-c1e3-4f0c-b2d9-037fc02fedc1"
      unitRef="usd">25756000</us-gaap:TreasuryStockValue>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDMtMi0xLTEtMjU1MzM4_b2348aa9-f753-4cab-90c4-3cd06f256995"
      unitRef="usd">48168000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDMtNC0xLTEtMjU1MzM4_09246e3d-3e5c-413b-a806-c549b520438f"
      unitRef="usd">83278000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDQtMi0xLTEtMjU1MzM4_0dcf71ec-9adb-47dd-9f9f-559176fc26a5"
      unitRef="usd">240569000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDQtNC0xLTEtMjU1MzM4_3f8d8363-34d9-4a96-b850-271cf0a29123"
      unitRef="usd">265546000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDUtMi0xLTEtMjU1MzM4_bcbe91e0-275f-4ff7-8c5e-cb015c982473"
      unitRef="usd">370700000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xNi9mcmFnOjg2MzMxMGE1YWM2NDRmZDFiMTI3ODg1MDA0MGVkY2YzL3RhYmxlOjFlMTQ4MWMwYmQ3ZjQyYWM5YjA5YTJmMmJhOWE2NGUzL3RhYmxlcmFuZ2U6MWUxNDgxYzBiZDdmNDJhYzliMDlhMmYyYmE5YTY0ZTNfNDUtNC0xLTEtMjU1MzM4_e72fdc63-ddf3-40bc-88f9-80a3da6ab02e"
      unitRef="usd">381217000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMi0xLTEtMS0yNTUzMzg_6587b52c-63f8-4a89-8c70-2593f4e7f153"
      unitRef="usd">136100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMi0zLTEtMS0yNTUzMzg_630e1a60-5409-4e18-b29e-e97111103fcb"
      unitRef="usd">105296000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNC0xLTEtMS0yNTUzMzg_9b74c219-6244-4fdd-b979-03cc1a04bd67"
      unitRef="usd">56208000</us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization>
    <us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNC0zLTEtMS0yNTUzMzg_7d76ab73-ec73-42e8-ae91-8e140c31c753"
      unitRef="usd">43347000</us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization>
    <us-gaap:SellingAndMarketingExpense
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNS0xLTEtMS0yNTUzMzg_8f10dd36-5c2b-49ab-be92-1134f740d4f9"
      unitRef="usd">29398000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNS0zLTEtMS0yNTUzMzg_30cfcc81-1333-407a-87cd-fc57abf157ae"
      unitRef="usd">24919000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNi0xLTEtMS0yNTUzMzg_76c0d314-6e0f-4c80-978c-1e3577472180"
      unitRef="usd">37662000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNi0zLTEtMS0yNTUzMzg_9b06d2d6-3f79-4ab1-9c99-b0faf8e6a942"
      unitRef="usd">24320000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNy0xLTEtMS0yNTUzMzg_72b34e7c-d12f-4c76-8cdc-d99d5288a3f1"
      unitRef="usd">31691000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNy0zLTEtMS0yNTUzMzg_ab88094d-10bc-424c-9594-50eb7c7f7bd3"
      unitRef="usd">18964000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfOC0xLTEtMS0yNTUzMzg_842e528c-29cb-4e87-a641-e4c9e7bf48b6"
      unitRef="usd">7671000</us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfOC0zLTEtMS0yNTUzMzg_3e95086b-de92-427e-9b0d-175c3b61a4cb"
      unitRef="usd">8415000</us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization>
    <us-gaap:CostsAndExpenses
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfOS0xLTEtMS0yNTUzMzg_5bdfee68-c0c2-43cd-879c-4912336e9e2a"
      unitRef="usd">162630000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfOS0zLTEtMS0yNTUzMzg_b1b8d7e1-3ccc-49a5-8035-6cdd57ade2f3"
      unitRef="usd">119965000</us-gaap:CostsAndExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTAtMS0xLTEtMjU1MzM4_0958c914-c50a-4c7a-8205-059d24611f4e"
      unitRef="usd">-26530000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTAtMy0xLTEtMjU1MzM4_e6e15faa-34cf-4ac5-ab90-9d2536cad796"
      unitRef="usd">-14669000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTEtMS0xLTEtMjU1MzM4_e1ab7788-df4f-4af0-bbeb-ac1f81a004b7"
      unitRef="usd">20000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTEtMy0xLTEtMjU1MzM4_aabc591a-e465-4550-bf1b-11c6835b1a77"
      unitRef="usd">-10000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTItMS0xLTEtMjU1MzM4_81be6a0a-1956-4bc5-8723-12bb9d32af97"
      unitRef="usd">1361000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTItMy0xLTEtMjU1MzM4_590b5d86-8df4-4f7b-a8ba-7681a1fdbeba"
      unitRef="usd">107000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTMtMS0xLTEtMjU1MzM4_a34eb1fb-f246-43f6-a8be-b4f2c8acbd27"
      unitRef="usd">-25149000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTMtMy0xLTEtMjU1MzM4_4135feff-8e24-478c-b897-23702f8e1c14"
      unitRef="usd">-14572000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTQtMS0xLTEtMjU1MzM4_a0f1371c-9f97-4b8e-aaf0-bcd84dc2380a"
      unitRef="usd">9961000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTQtMy0xLTEtMjU1MzM4_6afe391f-e60a-4ddf-bbd5-ba39517aa371"
      unitRef="usd">-285000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTUtMS0xLTEtMjU1MzM4_86643556-5039-44c3-b11c-30fd240d9f27"
      unitRef="usd">-35110000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTUtMy0xLTEtMjU1MzM4_72caf9f7-2fa3-43bd-80ef-4c738ea86ec3"
      unitRef="usd">-14287000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTgtMS0xLTEtMjU1MzM4_605e664a-4735-4e70-8a8a-5ba611733646"
      unitRef="usdPerShare">-0.99</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTgtMS0xLTEtMjU1MzM4_72b3098b-ca57-43cd-86b5-556a337333af"
      unitRef="usdPerShare">-0.99</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTgtMy0xLTEtMjU1MzM4_5cf6b605-bbaa-46e1-8e6d-6c7a656377ba"
      unitRef="usdPerShare">-0.41</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMTgtMy0xLTEtMjU1MzM4_cc04bcb7-770b-4a30-b53e-0aac78d30233"
      unitRef="usdPerShare">-0.41</us-gaap:EarningsPerShareBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMjEtMS0xLTEtMjcyMDc3_1402bdfe-74c8-46dc-bafa-d65f372f8006"
      unitRef="shares">35443000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMjEtMS0xLTEtMjcyMDc3_28bc68f7-3efa-414c-aabc-42994bcebefc"
      unitRef="shares">35443000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMjEtMy0xLTEtMjU1MzM4_1da9d83b-6e84-4594-8b86-4c20b83e6deb"
      unitRef="shares">34836000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfMjEtMy0xLTEtMjU1MzM4_e140713d-2dec-4201-9ed4-dd083c188995"
      unitRef="shares">34836000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i988b2c3147f94a779d228002efeaadc7_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjdiMGQyNjFhM2ZhNDQ2OWM5ZjdjMjUwN2I4NzIwYjkwL3RhYmxlcmFuZ2U6N2IwZDI2MWEzZmE0NDY5YzlmN2MyNTA3Yjg3MjBiOTBfMy0yLTEtMS0yNTUzMzg_bf266c10-1d5a-4afa-a204-9c0cbe79ca81"
      unitRef="usd">768000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i67e5b8b909f649ae8713ecb13476e8ab_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjdiMGQyNjFhM2ZhNDQ2OWM5ZjdjMjUwN2I4NzIwYjkwL3RhYmxlcmFuZ2U6N2IwZDI2MWEzZmE0NDY5YzlmN2MyNTA3Yjg3MjBiOTBfMy00LTEtMS0yNTUzMzg_0aae2383-06f0-4625-9127-8994ec60110b"
      unitRef="usd">358000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i46b6aa4943ba461fa7d94c6a10e1ed7e_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjdiMGQyNjFhM2ZhNDQ2OWM5ZjdjMjUwN2I4NzIwYjkwL3RhYmxlcmFuZ2U6N2IwZDI2MWEzZmE0NDY5YzlmN2MyNTA3Yjg3MjBiOTBfNC0yLTEtMS0yNTUzMzg_e0a780f2-6e53-4a48-b8f1-361e95d58b8f"
      unitRef="usd">2417000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="iee7235f201b844ba92bcf1103de9fa84_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjdiMGQyNjFhM2ZhNDQ2OWM5ZjdjMjUwN2I4NzIwYjkwL3RhYmxlcmFuZ2U6N2IwZDI2MWEzZmE0NDY5YzlmN2MyNTA3Yjg3MjBiOTBfNC00LTEtMS0yNTUzMzg_55392e81-4b2e-47c2-b942-0ed60cc9ea06"
      unitRef="usd">1460000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i352a2e1f50fe4e2392f3eed63bf19b1d_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjdiMGQyNjFhM2ZhNDQ2OWM5ZjdjMjUwN2I4NzIwYjkwL3RhYmxlcmFuZ2U6N2IwZDI2MWEzZmE0NDY5YzlmN2MyNTA3Yjg3MjBiOTBfNS0yLTEtMS0yNTUzMzg_43b0851b-57b6-4dd9-94b2-d8c674d3499a"
      unitRef="usd">5439000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i47686d398d6644f9a739a3d7120fb1c1_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjdiMGQyNjFhM2ZhNDQ2OWM5ZjdjMjUwN2I4NzIwYjkwL3RhYmxlcmFuZ2U6N2IwZDI2MWEzZmE0NDY5YzlmN2MyNTA3Yjg3MjBiOTBfNS00LTEtMS0yNTUzMzg_956f7b97-ee6e-4703-9e14-b504f13edb58"
      unitRef="usd">2806000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="id03d28289b6d474ca83e9887f32957ad_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjdiMGQyNjFhM2ZhNDQ2OWM5ZjdjMjUwN2I4NzIwYjkwL3RhYmxlcmFuZ2U6N2IwZDI2MWEzZmE0NDY5YzlmN2MyNTA3Yjg3MjBiOTBfNi0yLTEtMS0yNTUzMzg_e9b67ff2-b3c8-4dc4-aaa6-834c7ce9c128"
      unitRef="usd">5279000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i535fa1614ee442bca2425ec6b05f5008_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjdiMGQyNjFhM2ZhNDQ2OWM5ZjdjMjUwN2I4NzIwYjkwL3RhYmxlcmFuZ2U6N2IwZDI2MWEzZmE0NDY5YzlmN2MyNTA3Yjg3MjBiOTBfNi00LTEtMS0yNTUzMzg_2f568818-bea9-41b3-b2c1-a8fabe8be2fe"
      unitRef="usd">2794000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjdiMGQyNjFhM2ZhNDQ2OWM5ZjdjMjUwN2I4NzIwYjkwL3RhYmxlcmFuZ2U6N2IwZDI2MWEzZmE0NDY5YzlmN2MyNTA3Yjg3MjBiOTBfNy0yLTEtMS0yNTUzMzg_5288d8e2-5f0a-4108-9598-3ec048343237"
      unitRef="usd">13903000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjdiMGQyNjFhM2ZhNDQ2OWM5ZjdjMjUwN2I4NzIwYjkwL3RhYmxlcmFuZ2U6N2IwZDI2MWEzZmE0NDY5YzlmN2MyNTA3Yjg3MjBiOTBfNy00LTEtMS0yNTUzMzg_d6395c07-ac39-4030-a076-13b42c394c61"
      unitRef="usd">7418000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:NetIncomeLoss
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yMi9mcmFnOmI2ZDg0OTZkYjNiYTQzYmRhOTI1MmNhYWJhYmU1ODczL3RhYmxlOmJiMDYxMGIzNDhjZTRhMTI5YzBlZDAxNTI4YjRmOTc4L3RhYmxlcmFuZ2U6YmIwNjEwYjM0OGNlNGExMjljMGVkMDE1MjhiNGY5NzhfMi0xLTEtMS0yNTUzMzg_86643556-5039-44c3-b11c-30fd240d9f27"
      unitRef="usd">-35110000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yMi9mcmFnOmI2ZDg0OTZkYjNiYTQzYmRhOTI1MmNhYWJhYmU1ODczL3RhYmxlOmJiMDYxMGIzNDhjZTRhMTI5YzBlZDAxNTI4YjRmOTc4L3RhYmxlcmFuZ2U6YmIwNjEwYjM0OGNlNGExMjljMGVkMDE1MjhiNGY5NzhfMi0zLTEtMS0yNTUzMzg_72caf9f7-2fa3-43bd-80ef-4c738ea86ec3"
      unitRef="usd">-14287000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yMi9mcmFnOmI2ZDg0OTZkYjNiYTQzYmRhOTI1MmNhYWJhYmU1ODczL3RhYmxlOmJiMDYxMGIzNDhjZTRhMTI5YzBlZDAxNTI4YjRmOTc4L3RhYmxlcmFuZ2U6YmIwNjEwYjM0OGNlNGExMjljMGVkMDE1MjhiNGY5NzhfNC0xLTEtMS0yNTUzMzg_c8ece059-b375-4f2e-93bd-2b02ae443044"
      unitRef="usd">763000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yMi9mcmFnOmI2ZDg0OTZkYjNiYTQzYmRhOTI1MmNhYWJhYmU1ODczL3RhYmxlOmJiMDYxMGIzNDhjZTRhMTI5YzBlZDAxNTI4YjRmOTc4L3RhYmxlcmFuZ2U6YmIwNjEwYjM0OGNlNGExMjljMGVkMDE1MjhiNGY5NzhfNC0zLTEtMS0yNTUzMzg_5394f70b-4a87-4952-97cf-f90f48dc070b"
      unitRef="usd">-1345000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yMi9mcmFnOmI2ZDg0OTZkYjNiYTQzYmRhOTI1MmNhYWJhYmU1ODczL3RhYmxlOmJiMDYxMGIzNDhjZTRhMTI5YzBlZDAxNTI4YjRmOTc4L3RhYmxlcmFuZ2U6YmIwNjEwYjM0OGNlNGExMjljMGVkMDE1MjhiNGY5NzhfNS0xLTEtMS0yNTUzMzg_6ea7c07f-72ee-4e00-9159-8db763e548ce"
      unitRef="usd">-34347000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yMi9mcmFnOmI2ZDg0OTZkYjNiYTQzYmRhOTI1MmNhYWJhYmU1ODczL3RhYmxlOmJiMDYxMGIzNDhjZTRhMTI5YzBlZDAxNTI4YjRmOTc4L3RhYmxlcmFuZ2U6YmIwNjEwYjM0OGNlNGExMjljMGVkMDE1MjhiNGY5NzhfNS0zLTEtMS0yNTUzMzg_b272edf9-59ca-4a60-a0c6-4c2968404abc"
      unitRef="usd">-15632000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i37c7c4d30dbd4b12b39b9486bb3f5a13_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNS0xLTEtMS0yNTUzMzg_b4fbc760-2411-49d1-b378-7b48760d60d2"
      unitRef="shares">20569000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i37c7c4d30dbd4b12b39b9486bb3f5a13_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNS0zLTEtMS0yNTUzMzg_3f929f85-b935-46bf-8cb8-40b5f514e792"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ia645dc2c4dfb4e1abefd854ec8149aea_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNS01LTEtMS0yNTUzMzg_0217fef7-4884-449b-b97b-38461a5afceb"
      unitRef="shares">14746000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ia645dc2c4dfb4e1abefd854ec8149aea_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNS03LTEtMS0yNTUzMzg_7c70eb4d-7123-4535-b09b-6b82b7853432"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iadb52ae1416a4461908d69628c4f9095_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNS05LTEtMS0yNTUzMzg_2578e680-9e4e-4da6-8290-4f9287ec7847"
      unitRef="usd">209704000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i54786397df0a48daa2991db963be5443_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNS0xMS0xLTEtMjU1MzM4_db379ce6-38b5-4e19-813f-d348a4d69ee5"
      unitRef="usd">-1684000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i39301203bb784b56873b884d4267f8a5_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNS0xMy0xLTEtMjU1MzM4_3b8ca9eb-a6c9-4bbe-a3f1-dda2a9822aeb"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i565c66d7810440649d7ef7be6c4dd545_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNS0xNS0xLTEtMjU1MzM4_aea47593-cfb2-4015-920e-cf320b0fe211"
      unitRef="usd">83278000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNS0xNy0xLTEtMjU1MzM4_ff5f79ef-30a8-4bfe-ac64-70db50089f7d"
      unitRef="usd">265546000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i8e6a7487a4fe43f0862aa890c253fece_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNi0xLTEtMS0yNTUzMzg_1c2202fd-be75-4106-bf6c-c73972c791fd"
      unitRef="shares">64000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i60a98b0d6bed4abea99112f4df16af49_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNi05LTEtMS0yNTUzMzg_ef81c1d2-caff-44ae-9a95-70792c26f53e"
      unitRef="usd">834000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNi0xNy0xLTEtMjU1MzM4_09debb17-48fe-41c7-813a-9c8568607f85"
      unitRef="usd">834000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i60a98b0d6bed4abea99112f4df16af49_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNy05LTEtMS0yNTUzMzg_497ca009-8067-4c56-a595-b4cdb95b51d2"
      unitRef="usd">14075000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfNy0xNy0xLTEtMjU1MzM4_4e7bd320-2b9a-4100-8718-2262c771a166"
      unitRef="usd">14075000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings
      contextRef="i8e6a7487a4fe43f0862aa890c253fece_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfOC0xLTEtMS0yNTUzMzg_0a375e3d-c077-4957-b113-3f04636f4e16"
      unitRef="shares">79000</appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="i60a98b0d6bed4abea99112f4df16af49_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfOC05LTEtMS0yNTUzMzg_a8d8e0fe-6ede-4fcc-84cb-fc30656efe48"
      unitRef="usd">-5539000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfOC0xNy0xLTEtMjU1MzM4_d13e8a3c-353b-4d46-8309-e411eecb4c06"
      unitRef="usd">-5539000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="i8e6a7487a4fe43f0862aa890c253fece_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfOS0xLTEtMS0yNTUzMzg_1d35a91a-8d7d-4cf8-bf44-06ba49ff51e3"
      unitRef="shares">27000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="i0cf2152166004b7dabcf7750754018ba_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfOS01LTEtMS0yNTUzMzg_77de5ec5-1d5f-42fd-ba5c-1d5e78c765ac"
      unitRef="shares">27000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="i8e6a7487a4fe43f0862aa890c253fece_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTAtMS0xLTEtMjgxNDI5_d16261b1-c6b7-48f9-a21f-145c3ad10d6e"
      unitRef="shares">2000</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i300fb345ad7e4971aef1521ee5ed7181_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTAtMTEtMS0xLTI1NTMzOA_ee120682-2a5c-4d4e-bfd9-115725e5db31"
      unitRef="usd">763000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTAtMTctMS0xLTI1NTMzOA_ae618aa6-0beb-4b5f-aad2-07cca56ff156"
      unitRef="usd">763000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="ic2c04b59310a434b97e0e3d82ee5be66_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTEtMTUtMS0xLTI1NTMzOA_b88164fc-a5a7-4822-a7eb-cf5bbacb1cdc"
      unitRef="usd">-35110000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTEtMTctMS0xLTI1NTMzOA_4f312b90-e81d-44a7-8ac1-83067c0bf487"
      unitRef="usd">-35110000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i7f33ee5361404f13bcfa604134680171_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTItMS0xLTEtMjU1MzM4_18c903ea-b399-4bc5-beec-e06f9854fefd"
      unitRef="shares">20741000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i7f33ee5361404f13bcfa604134680171_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTItMy0xLTEtMjU1MzM4_4e27a3f9-afbf-47ed-ad27-34b57ec3242d"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ie28fdab8c6dd45d7b822b1d188f5ce07_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTItNS0xLTEtMjU1MzM4_91a85dab-3ad2-4dc5-a17c-637bdb8c303c"
      unitRef="shares">14719000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ie28fdab8c6dd45d7b822b1d188f5ce07_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTItNy0xLTEtMjU1MzM4_12095864-a6f7-4038-a097-860753c877de"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i9c562037db544724a613e8009b7dd755_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTItOS0xLTEtMjU1MzM4_34f3e894-9248-4057-a840-e9e6034ce3e4"
      unitRef="usd">219074000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ibd00c8b6befd482f812b506de6c2ee52_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTItMTEtMS0xLTI1NTMzOA_01f210a0-b538-4f80-b1a2-0b54cf0b7866"
      unitRef="usd">-921000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i8a0105c2acd3449fb1937a10ba109d4f_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTItMTMtMS0xLTI1NTMzOA_46ded458-b033-4090-a23e-b40848d1be49"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i8bb8394c00714612ad26d7a7bb1db5c3_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTItMTUtMS0xLTI1NTMzOA_a6831fb1-7640-43df-b693-1cb11988796d"
      unitRef="usd">48168000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOmQ3YjFjYWI1N2VmZDRjYmE5OTJiM2I2NDVmNzczODc4L3RhYmxlcmFuZ2U6ZDdiMWNhYjU3ZWZkNGNiYTk5MmIzYjY0NWY3NzM4NzhfMTItMTctMS0xLTI1NTMzOA_d84e325d-2631-434a-bf21-22f397ccc2e5"
      unitRef="usd">240569000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ifb79e3bff03b4da382fc1c8c5ae598ab_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNS0xLTEtMS0yNTUzMzg_73681051-750f-4a55-91f8-6e8abb7b3858"
      unitRef="shares">19417000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ifb79e3bff03b4da382fc1c8c5ae598ab_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNS0zLTEtMS0yNTUzMzg_21448300-9367-4667-ac11-77d21e456811"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="if8ed5a8d47e547f5b3cb5a7ee1ed7da3_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNS01LTEtMS0yNTUzMzg_fe4e4e3c-86b6-46db-abe2-4011212e9ad3"
      unitRef="shares">15408000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="if8ed5a8d47e547f5b3cb5a7ee1ed7da3_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNS03LTEtMS0yNTUzMzg_4a1a8d3e-4d8b-4367-afc6-69ab010214b7"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iedab1718bd624b59bfdc60ce5180f889_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNS05LTEtMS0yNTUzMzg_589f633d-9d6d-4402-9e20-f3995e5ae8b3"
      unitRef="usd">171930000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i4cb1742d44ef4ee7ae6c1efb250818db_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNS0xMS0xLTEtMjU1MzM4_4922ea05-dc43-4195-acb3-c9e9d4420acd"
      unitRef="usd">-194000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i885f20f976ff4629a1b7a921da50e47f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNS0xMy0xLTEtMjU1MzM4_028489af-0a3e-48d6-9185-d80396879348"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i8c0d9d6c2479435280087546300b8b2b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNS0xNS0xLTEtMjU1MzM4_c37e9cd3-dcdc-409c-b586-e79d71465afc"
      unitRef="usd">151397000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="icea696c5a08d41169d61d6e806aed506_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNS0xNy0xLTEtMjU1MzM4_a61ba02c-e983-4213-b089-ab5e7d4e57f5"
      unitRef="usd">297381000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="icaf8f7b3400240178fe014d852629ab3_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNi0xLTEtMS0yNTUzMzg_ef2e6458-f6f0-4867-8748-df86093c005d"
      unitRef="shares">17000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ie3dd8e82a6494bfca7da4a2ab2e54deb_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNi05LTEtMS0yNTUzMzg_bc2dd757-d883-494e-99f7-734442cada8c"
      unitRef="usd">100000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNi0xNy0xLTEtMjU1MzM4_abc59cd1-2359-4114-a33e-5bb2c597c311"
      unitRef="usd">100000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ie3dd8e82a6494bfca7da4a2ab2e54deb_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNy05LTEtMS0yNTUzMzg_5a979be9-92a9-4452-930f-dfcb26ac188b"
      unitRef="usd">7967000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfNy0xNy0xLTEtMjU1MzM4_6b45c1bd-6f72-44ba-b65d-c21976cc603c"
      unitRef="usd">7967000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings
      contextRef="icaf8f7b3400240178fe014d852629ab3_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfOC0xLTEtMS0yNTUzMzg_27a80489-e76a-4099-b6cb-ea006818f45b"
      unitRef="shares">17000</appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="ie3dd8e82a6494bfca7da4a2ab2e54deb_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfOC05LTEtMS0yNTUzMzg_7e993c0f-b566-4a54-8380-ce821d351f35"
      unitRef="usd">-1073000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfOC0xNy0xLTEtMjU1MzM4_2a372fc7-0b10-49f7-ba70-43c89c304230"
      unitRef="usd">-1073000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="icaf8f7b3400240178fe014d852629ab3_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfOS0xLTEtMS0yNTUzMzg_e87f22cc-a27e-497a-8bea-94eda69e4b39"
      unitRef="shares">572000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="i2cce9478741c4463ad832194897c63d4_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfOS01LTEtMS0yNTUzMzg_c70b56f1-6a22-4d89-913b-05411043b674"
      unitRef="shares">572000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="ib18acbf085bf49798f2d08f339a3c892_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTEtMTEtMS0xLTI1NTMzOA_a6420e66-944b-4e64-8bb4-2474fb6e5a4a"
      unitRef="usd">-1345000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTEtMTctMS0xLTI1NTMzOA_deaf31bc-f171-4a06-ae0a-f2f43e5a1454"
      unitRef="usd">-1345000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="i158f85aaec0e4ec7ad0b5bb8d2441691_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTItMTUtMS0xLTI1NTMzOA_d3cb528e-8984-4197-93b1-3db915fe3251"
      unitRef="usd">-14287000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTItMTctMS0xLTI1NTMzOA_465f4095-a92a-492e-a032-e19f04c28121"
      unitRef="usd">-14287000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ia7878f33e8fd420e9d14484e1194f1cc_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTMtMS0xLTEtMjU1MzM4_80a56434-9dfe-4a6a-bb89-34642caed2d7"
      unitRef="shares">20023000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ia7878f33e8fd420e9d14484e1194f1cc_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTMtMy0xLTEtMjU1MzM4_83d3c97f-845a-4630-9d06-d769d2dd990f"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="if6887124df8d4253bc7a3cc7235c3a7f_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTMtNS0xLTEtMjU1MzM4_6e5d0c89-6fb4-42d2-8695-00fd39de9773"
      unitRef="shares">14836000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="if6887124df8d4253bc7a3cc7235c3a7f_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTMtNy0xLTEtMjU1MzM4_abdc32fc-7a28-4b62-94c9-5cc2c5bd43ca"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i9b9040c767e14b49a856a903efd2858d_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTMtOS0xLTEtMjU1MzM4_7b20d230-badc-4d3e-bb08-5e7fab2a9a77"
      unitRef="usd">178924000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i85a219589e9f4d20b7504be382e2cdf3_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTMtMTEtMS0xLTI1NTMzOA_62b1a9df-bfae-49eb-9e1e-1e0bb12d32e1"
      unitRef="usd">-1539000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i726538746ffe43df91f26f3b7d9eee24_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTMtMTMtMS0xLTI1NTMzOA_0952d1a5-1d6b-4e85-a9c4-9abf49a55e00"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic0293b40a0824d74a58490c6d54c13e6_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTMtMTUtMS0xLTI1NTMzOA_712ed9d0-e891-41c9-9855-8794a660ebfe"
      unitRef="usd">137110000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i252fb96782cd4ec7b8245cc2260e507e_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yNS9mcmFnOmFhOTVmZjk4NzM1ZTRlZjBhYzY2MGQ3ODc0NjY5ODk3L3RhYmxlOjkzYzliNDI4NTZhNTRhZjg5ZTBjMjEzZWZlYTkwYjQ4L3RhYmxlcmFuZ2U6OTNjOWI0Mjg1NmE1NGFmODllMGMyMTNlZmVhOTBiNDhfMTMtMTctMS0xLTI1NTMzOA_a5f38c10-2efa-4ad7-a29f-7d4c3616f2ed"
      unitRef="usd">288743000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfOC0xLTEtMS0yNTUzMzg_be192ae3-96fc-4f0e-b16f-25d11d05efdd"
      unitRef="usd">-35110000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfOC0zLTEtMS0yNTUzMzg_57490786-dabf-4ed9-b675-d58423096aa1"
      unitRef="usd">-14287000</us-gaap:NetIncomeLoss>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTAtMS0xLTEtMjU1MzM4_64e3e82f-696e-497a-92ef-a1be52caa79e"
      unitRef="usd">6937000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTAtMy0xLTEtMjU1MzM4_186916cc-6a0f-4977-92f7-3c2909a746a3"
      unitRef="usd">7878000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTEtMS0xLTEtMjU1MzM4_533802fa-66a5-4764-9e79-2b1bf56a19b4"
      unitRef="usd">568000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTEtMy0xLTEtMjU1MzM4_704da460-d6e2-4733-9388-7c5080123fd5"
      unitRef="usd">887000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <appf:GainLossOnModificationOfLeaseTerm
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTMtMS0xLTEtMjgyNDU0_c87e6869-9d2f-4d17-b423-a4daac723c76"
      unitRef="usd">2366000</appf:GainLossOnModificationOfLeaseTerm>
    <appf:GainLossOnModificationOfLeaseTerm
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTMtMy0xLTEtMjgyNDYy_ea3ac764-c8a7-4d2b-a3e2-a935b857b3cf"
      unitRef="usd">0</appf:GainLossOnModificationOfLeaseTerm>
    <us-gaap:DeferredIncomeTaxesAndTaxCredits
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTMtMS0xLTEtMjU1MzM4_747f4636-3ed6-4ac2-b3e3-34b824b616a9"
      unitRef="usd">4000</us-gaap:DeferredIncomeTaxesAndTaxCredits>
    <us-gaap:DeferredIncomeTaxesAndTaxCredits
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTMtMy0xLTEtMjU1MzM4_71cf4407-a2b6-4cf4-8bd4-5157b8bf1655"
      unitRef="usd">-342000</us-gaap:DeferredIncomeTaxesAndTaxCredits>
    <us-gaap:ShareBasedCompensation
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTQtMS0xLTEtMjU1MzM4_5373cec7-b3e0-496e-b61e-2f231c5a5390"
      unitRef="usd">14637000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTQtMy0xLTEtMjU1MzM4_99f7ad38-2426-4432-ba6d-4549d4dd6040"
      unitRef="usd">7955000</us-gaap:ShareBasedCompensation>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTYtMS0xLTEtMjU1MzM4_80b9bd8d-3b27-42e7-834d-3182d27a0dd5"
      unitRef="usd">159000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTYtMy0xLTEtMjU1MzM4_112a1599-39c0-489a-bbc5-b4bafe9ec77a"
      unitRef="usd">-427000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTktMS0xLTEtMjU1MzM4_c341f6bd-aca9-43de-8819-ad20a7fb1ee2"
      unitRef="usd">914000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMTktMy0xLTEtMjU1MzM4_7d6cd9b5-9414-4434-84cf-d8773340a58c"
      unitRef="usd">3431000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjAtMS0xLTEtMjU1MzM4_670c0a58-49dd-46b3-88d3-dc13d1a41f11"
      unitRef="usd">2465000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjAtMy0xLTEtMjU1MzM4_5a630cec-4e98-4442-bd66-c8ebe077ae4e"
      unitRef="usd">1942000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjEtMS0xLTEtMjU1MzM4_def95925-7e74-4b40-af2a-d06f938c4d65"
      unitRef="usd">-66000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjEtMy0xLTEtMjU1MzM4_f5fe9844-7c25-4cef-8e49-924fc5e0292c"
      unitRef="usd">573000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjItMS0xLTEtMjU1MzM4_aa9a6ce3-ba70-4c5f-a2e5-f5f22c21dd2c"
      unitRef="usd">-1777000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjItMy0xLTEtMjU1MzM4_75ad947a-abe6-42bd-aec5-46816ff8f7b0"
      unitRef="usd">2987000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjMtMS0xLTEtMjU1MzM4_25a7f433-a0fb-4254-b66d-a578a6bc95ec"
      unitRef="usd">13041000</us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities>
    <us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjMtMy0xLTEtMjU1MzM4_56ad60d5-8569-40ed-829e-e91927564f34"
      unitRef="usd">-5016000</us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccruedLiabilities
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjQtMS0xLTEtMjU1MzM4_194fdc0d-dc0c-4c98-a0e6-88c9d7a759b2"
      unitRef="usd">2407000</us-gaap:IncreaseDecreaseInOtherAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccruedLiabilities
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjQtMy0xLTEtMjU1MzM4_6df7be06-9fd4-404e-aa3d-f074132eabaa"
      unitRef="usd">1722000</us-gaap:IncreaseDecreaseInOtherAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjktMS0xLTEtMjU1MzM4_5f1eaaaa-d965-41d0-9a74-70a54ec963b1"
      unitRef="usd">-771000</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMjktMy0xLTEtMjU1MzM4_95c6dea9-d539-4960-93d3-5399adb4268f"
      unitRef="usd">-631000</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzAtMS0xLTEtMjU1MzM4_d05457e3-65d6-458d-ac72-dded1acdb14d"
      unitRef="usd">7475000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzAtMy0xLTEtMjU1MzM4_8ef879ce-d207-4c3e-9910-baad656e6594"
      unitRef="usd">2122000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzEtMS0xLTEtMjU1MzM4_b0235f17-ed36-42f7-bf5a-b876a8f6306d"
      unitRef="usd">1573000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzEtMy0xLTEtMjU1MzM4_538c97ee-bc12-4c83-b6ba-362b25a83ffb"
      unitRef="usd">-2244000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzMtMS0xLTEtMjU1MzM4_45ec45f8-77b5-4453-b35a-ed5f241f192c"
      unitRef="usd">1285000</us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt>
    <us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzMtMy0xLTEtMjU1MzM4_4548674a-7a99-483a-ac0d-673c905be145"
      unitRef="usd">23309000</us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzQtMS0xLTEtMjU1MzM4_79536048-e412-4443-a125-20e044ea3b6e"
      unitRef="usd">1013000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzQtMy0xLTEtMjU1MzM4_ddb26537-d306-4ead-8411-e37d19c0133f"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzUtMS0xLTEtMjU1MzM4_b2f3925c-6167-4019-874d-6baadcda9ba4"
      unitRef="usd">37890000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzUtMy0xLTEtMjU1MzM4_40d961b0-7a97-4a45-9995-b776c4e4cf8e"
      unitRef="usd">23343000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzYtMS0xLTEtMjU1MzM4_61c349e9-619c-4ed9-9f59-3ec81adfc050"
      unitRef="usd">794000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzYtMy0xLTEtMjU1MzM4_9668c5e6-2beb-4cd5-91fc-db4a6e20c08b"
      unitRef="usd">1830000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzctMS0xLTEtMjU1MzM4_cad0c0a1-cea5-46dd-80d1-112a61a87de3"
      unitRef="usd">1165000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzctMy0xLTEtMjU1MzM4_50212de0-0b01-42b7-a83e-b3c4a5aa9e48"
      unitRef="usd">3484000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:ProceedsFromSaleOfEquityMethodInvestments
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzgtMS0xLTEtMjU1MzM4_9100eed0-da52-4239-ad87-1e49da61fb99"
      unitRef="usd">629000</us-gaap:ProceedsFromSaleOfEquityMethodInvestments>
    <us-gaap:ProceedsFromSaleOfEquityMethodInvestments
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfMzgtMy0xLTEtMjU1MzM4_50f0da55-52df-4e12-a420-1b8df435af15"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfEquityMethodInvestments>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNDItMS0xLTEtMjU1MzM4_c22bae5a-1106-4d90-9f38-b7a856ff7ebd"
      unitRef="usd">36288000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNDItMy0xLTEtMjU1MzM4_a9179009-fa31-4d96-a5c8-71233b135d41"
      unitRef="usd">-5280000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNDQtMS0xLTEtMjU1MzM4_76c2f5ab-11a8-44fa-ad24-3a0e914c2b57"
      unitRef="usd">834000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNDQtMy0xLTEtMjU1MzM4_d050929b-c3b5-4c75-ab6c-1da57c0fafca"
      unitRef="usd">100000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNDctMS0xLTEtMjU1MzM4_cf241e62-b426-48d1-b6eb-80f1113490a7"
      unitRef="usd">5539000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNDctMy0xLTEtMjU1MzM4_8f5aa7c4-3f94-42ad-aa0b-a70ff61c9ae9"
      unitRef="usd">1073000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNTQtMS0xLTEtMjU1MzM4_966cb8bd-ecf7-46ef-a7c3-fe5e7f672954"
      unitRef="usd">-4705000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNTQtMy0xLTEtMjU1MzM4_86071229-8fff-4cac-8668-9d29c9351503"
      unitRef="usd">-973000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNTUtMS0xLTEtMjU1MzM4_8a1dd129-11fe-4158-b81b-63981f7f19b6"
      unitRef="usd">33156000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNTUtMy0xLTEtMjU1MzM4_79f0201a-b583-4d1e-8e16-ccb2819f177d"
      unitRef="usd">-8497000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNTctMS0xLTEtMjU1MzM4_cd8a2c88-9863-44e3-95e5-715fd6eb9f13"
      unitRef="usd">71019000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="icea696c5a08d41169d61d6e806aed506_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNTctMy0xLTEtMjU1MzM4_5f2293d5-d3a5-42fd-94af-d920c0b89656"
      unitRef="usd">58283000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNTgtMS0xLTEtMjU1MzM4_548e508f-dd65-46ba-a078-207ceac301f2"
      unitRef="usd">104175000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i252fb96782cd4ec7b8245cc2260e507e_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmUxNjE2Nzc0N2NkMTRiMTY4ZjRkZTEwMTIwMmI3NjA2L3RhYmxlcmFuZ2U6ZTE2MTY3NzQ3Y2QxNGIxNjhmNGRlMTAxMjAyYjc2MDZfNTgtMy0xLTEtMjU1MzM4_02d4dac9-3127-483d-b226-9baa01c34d03"
      unitRef="usd">49786000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmY5Nzk4YmFlZDY2ODQ5MmQ5YzE5NjUxM2I1NDJjN2UwL3RhYmxlcmFuZ2U6Zjk3OThiYWVkNjY4NDkyZDljMTk2NTEzYjU0MmM3ZTBfMi0xLTEtMS0yNTUzMzg_091a237c-f240-4425-bbf1-a5f879cea113"
      unitRef="usd">103925000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i252fb96782cd4ec7b8245cc2260e507e_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmY5Nzk4YmFlZDY2ODQ5MmQ5YzE5NjUxM2I1NDJjN2UwL3RhYmxlcmFuZ2U6Zjk3OThiYWVkNjY4NDkyZDljMTk2NTEzYjU0MmM3ZTBfMi0zLTEtMS0yNTUzMzg_c08087e7-df9a-4e7b-a109-b6a4e9519ae3"
      unitRef="usd">49536000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RestrictedCashNoncurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmY5Nzk4YmFlZDY2ODQ5MmQ5YzE5NjUxM2I1NDJjN2UwL3RhYmxlcmFuZ2U6Zjk3OThiYWVkNjY4NDkyZDljMTk2NTEzYjU0MmM3ZTBfMy0xLTEtMS0yNTUzMzg_b5a1fd76-e1b7-4477-801d-7c91ff2c6f9e"
      unitRef="usd">250000</us-gaap:RestrictedCashNoncurrent>
    <us-gaap:RestrictedCashNoncurrent
      contextRef="i252fb96782cd4ec7b8245cc2260e507e_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmY5Nzk4YmFlZDY2ODQ5MmQ5YzE5NjUxM2I1NDJjN2UwL3RhYmxlcmFuZ2U6Zjk3OThiYWVkNjY4NDkyZDljMTk2NTEzYjU0MmM3ZTBfMy0zLTEtMS0yNTUzMzg_00eaac22-e8ed-4c17-b673-de46ccfaa113"
      unitRef="usd">250000</us-gaap:RestrictedCashNoncurrent>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmY5Nzk4YmFlZDY2ODQ5MmQ5YzE5NjUxM2I1NDJjN2UwL3RhYmxlcmFuZ2U6Zjk3OThiYWVkNjY4NDkyZDljMTk2NTEzYjU0MmM3ZTBfNC0xLTEtMS0yNTUzMzg_5a492799-be40-4d14-820b-a69e9172fc72"
      unitRef="usd">104175000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i252fb96782cd4ec7b8245cc2260e507e_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8yOC9mcmFnOjFiMWQ2MTJlZGVhNjRmOTQ5MDVhZmViNDQyNzU5MWQ5L3RhYmxlOmY5Nzk4YmFlZDY2ODQ5MmQ5YzE5NjUxM2I1NDJjN2UwL3RhYmxlcmFuZ2U6Zjk3OThiYWVkNjY4NDkyZDljMTk2NTEzYjU0MmM3ZTBfNC0zLTEtMS0yNTUzMzg_7e7d63a3-5536-4e1b-87a6-81f1d05d6afc"
      unitRef="usd">49786000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:NatureOfOperations
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNC9mcmFnOjkzNTdhN2ZkOWExZDQwNmJhZDM5M2YyMDRhNGQ3Nzc2L3RleHRyZWdpb246OTM1N2E3ZmQ5YTFkNDA2YmFkMzkzZjIwNGE0ZDc3NzZfNjgy_ea73cc30-a11c-488e-a10b-c653dece1acc">Nature of BusinessAppFolio, Inc. ("we," "us" or "our") is a leading provider of cloud business management solutions for the real estate industry. Our solutions are designed to enable our customers to digitally transform their businesses, address critical business operations and deliver a better customer experience. Digital transformation is effectively a requirement for business success in the modern world, and the way we work and live requires powerful software solutions.</us-gaap:NatureOfOperations>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RleHRyZWdpb246M2RlZWRkYjUyZTM0NGNhY2E1OTgzOGEzYTQ5Y2NjNzFfNDU0Nw_06c1f49c-dfae-441e-830d-ba7d3426074e">Summary of Significant Accounting Policies&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&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 and Significant Accounting Policies&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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 accompanying unaudited Condensed Consolidated Financial Statements were prepared in accordance with accounting principles generally accepted in the United States (&#x201c;GAAP&#x201d;) for interim financial information. Certain information and disclosures normally included in consolidated financial statements prepared in accordance with GAAP have been condensed or omitted. Accordingly, these Condensed Consolidated Financial Statements should be read in conjunction with our audited consolidated financial statements and the related notes included in our Annual Report, which was filed with the SEC on February 9, 2023. The year-end condensed balance sheet was derived from our audited consolidated financial statements. Our unaudited interim Condensed Consolidated Financial Statements include, in the opinion of management, all adjustments, consisting of normal and recurring items, necessary for the fair statement of our Condensed Consolidated Financial Statements. The operating results for the three months ended March&#160;31, 2023 are not necessarily indicative of the results expected for the full year ending December&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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;Reclassification&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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 reclassified certain amounts in our Condensed Consolidated Statements of Cash Flows within the cash flows from operating activities section in the prior year to conform to the current year's presentation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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:6pt;margin-top:3pt;text-align:justify;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 preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and the disclosure of contingent assets and liabilities at the dates of the financial statements, and the reported amounts of revenue, expenses, other income, and provision for income taxes during the reporting period. Assets and liabilities which are subject to judgment and use of estimates include the fair value of  financial instruments, capitalized software development costs, period of benefit associated with deferred costs, incremental borrowing rate used to measure operating lease liabilities, the recoverability of goodwill and long-lived assets, income taxes, useful lives associated with property and equipment and intangible assets, contingencies, assumptions underlying performance-based compensation (whether cash or stock-based), and assumptions underlying stock-based compensation. Actual results could differ from those estimates and any such differences may have a material impact on our Condensed Consolidated Financial Statements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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;Net Loss per Common Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;Net loss per common share was the same for shares of our Class A and Class B common stock because they are entitled to the same liquidation and dividend rights and are therefore combined in the table below. The following table presents a reconciliation of the weighted average number of shares of our Class A and Class B common stock used to compute net loss per common share (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:center"&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:78.958%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.137%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.139%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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;Three Months Ended&lt;br/&gt;March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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;2023&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 common shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,451&#160;&lt;/span&gt;&lt;/td&gt;&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;34,840&#160;&lt;/span&gt;&lt;/td&gt;&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Weighted average unvested restricted shares subject to repurchase&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;8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 common shares outstanding; basic and diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom: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;35,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,836&#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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;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;Because we reported a net loss for all periods presented, all potentially dilutive common shares are anti-dilutive for these periods and have been excluded from the calculation of net loss per share.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;In October 2021, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") 2021-08, "&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:115%"&gt;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;," which requires contract assets and contract liabilities acquired in a business combination to be recognized and measured by the acquirer on the acquisition date in accordance with ASC 606, "&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:115%"&gt;Revenue from Contracts with Customers&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;," as if the acquirer had originated the contracts. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022, with early adoption permitted. We adopted ASU 2021-08 on January 1, 2023. Adoption did not have an impact on our condensed consolidated financial statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RleHRyZWdpb246M2RlZWRkYjUyZTM0NGNhY2E1OTgzOGEzYTQ5Y2NjNzFfNDU2MA_8bccffd9-e0b2-4a0d-9263-3e245939c275">Basis of Presentation and Significant Accounting PoliciesThe accompanying unaudited Condensed Consolidated Financial Statements were prepared in accordance with accounting principles generally accepted in the United States (&#x201c;GAAP&#x201d;) for interim financial information. Certain information and disclosures normally included in consolidated financial statements prepared in accordance with GAAP have been condensed or omitted. Accordingly, these Condensed Consolidated Financial Statements should be read in conjunction with our audited consolidated financial statements and the related notes included in our Annual Report, which was filed with the SEC on February 9, 2023. The year-end condensed balance sheet was derived from our audited consolidated financial statements. Our unaudited interim Condensed Consolidated Financial Statements include, in the opinion of management, all adjustments, consisting of normal and recurring items, necessary for the fair statement of our Condensed Consolidated Financial Statements.</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:PriorPeriodReclassificationAdjustmentDescription
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RleHRyZWdpb246M2RlZWRkYjUyZTM0NGNhY2E1OTgzOGEzYTQ5Y2NjNzFfODc5NjA5MzAyNzk0OQ_48103dee-a62f-40ec-b33f-956752e7f8d7">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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;Reclassification&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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 reclassified certain amounts in our Condensed Consolidated Statements of Cash Flows within the cash flows from operating activities section in the prior year to conform to the current year's presentation.&lt;/span&gt;&lt;/div&gt;</us-gaap:PriorPeriodReclassificationAdjustmentDescription>
    <us-gaap:UseOfEstimates
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RleHRyZWdpb246M2RlZWRkYjUyZTM0NGNhY2E1OTgzOGEzYTQ5Y2NjNzFfNDU1NA_c5c546a6-1eec-437f-81b6-9399dfa0f58e">Use of EstimatesThe preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and the disclosure of contingent assets and liabilities at the dates of the financial statements, and the reported amounts of revenue, expenses, other income, and provision for income taxes during the reporting period. Assets and liabilities which are subject to judgment and use of estimates include the fair value of  financial instruments, capitalized software development costs, period of benefit associated with deferred costs, incremental borrowing rate used to measure operating lease liabilities, the recoverability of goodwill and long-lived assets, income taxes, useful lives associated with property and equipment and intangible assets, contingencies, assumptions underlying performance-based compensation (whether cash or stock-based), and assumptions underlying stock-based compensation. Actual results could differ from those estimates and any such differences may have a material impact on our Condensed Consolidated Financial Statements.</us-gaap:UseOfEstimates>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RleHRyZWdpb246M2RlZWRkYjUyZTM0NGNhY2E1OTgzOGEzYTQ5Y2NjNzFfNDU1Ng_be88ae9c-af49-49fe-903f-373ce94eb703">Net Loss per Common ShareNet loss per common share was the same for shares of our Class A and Class B common stock because they are entitled to the same liquidation and dividend rights and are therefore combined in the table below.</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RleHRyZWdpb246M2RlZWRkYjUyZTM0NGNhY2E1OTgzOGEzYTQ5Y2NjNzFfNDU1Nw_8fb6ea7c-bfb8-42cf-9e91-e4b041c3eecb">The following table presents a reconciliation of the weighted average number of shares of our Class A and Class B common stock used to compute net loss per common share (in thousands):&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:78.958%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.137%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.139%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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;Three Months Ended&lt;br/&gt;March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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;2023&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 common shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,451&#160;&lt;/span&gt;&lt;/td&gt;&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;34,840&#160;&lt;/span&gt;&lt;/td&gt;&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Weighted average unvested restricted shares subject to repurchase&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;8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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 common shares outstanding; basic and diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom: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;35,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,836&#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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RhYmxlOmU4MjI4OTE4ODk1MTRkYjY5MTY4ODcwNTAyYWE1NzA0L3RhYmxlcmFuZ2U6ZTgyMjg5MTg4OTUxNGRiNjkxNjg4NzA1MDJhYTU3MDRfMi0yLTEtMS0yNzIwODI_e4d6b06a-df33-4aa8-8b32-4547af656a68"
      unitRef="shares">35451000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RhYmxlOmU4MjI4OTE4ODk1MTRkYjY5MTY4ODcwNTAyYWE1NzA0L3RhYmxlcmFuZ2U6ZTgyMjg5MTg4OTUxNGRiNjkxNjg4NzA1MDJhYTU3MDRfMi00LTEtMS0yNTUzMzg_b63a60f5-b9b3-4eae-9cd9-3cd615141238"
      unitRef="shares">34840000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesRestrictedStock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RhYmxlOmU4MjI4OTE4ODk1MTRkYjY5MTY4ODcwNTAyYWE1NzA0L3RhYmxlcmFuZ2U6ZTgyMjg5MTg4OTUxNGRiNjkxNjg4NzA1MDJhYTU3MDRfMy0yLTEtMS0yNzIwODI_2897fc99-e3e2-4153-8fd5-d86cf30674d2"
      unitRef="shares">8000</us-gaap:WeightedAverageNumberOfSharesRestrictedStock>
    <us-gaap:WeightedAverageNumberOfSharesRestrictedStock
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RhYmxlOmU4MjI4OTE4ODk1MTRkYjY5MTY4ODcwNTAyYWE1NzA0L3RhYmxlcmFuZ2U6ZTgyMjg5MTg4OTUxNGRiNjkxNjg4NzA1MDJhYTU3MDRfMy00LTEtMS0yNTUzMzg_d1806c09-561b-4d06-a529-5bfdc9d6d60d"
      unitRef="shares">4000</us-gaap:WeightedAverageNumberOfSharesRestrictedStock>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RhYmxlOmU4MjI4OTE4ODk1MTRkYjY5MTY4ODcwNTAyYWE1NzA0L3RhYmxlcmFuZ2U6ZTgyMjg5MTg4OTUxNGRiNjkxNjg4NzA1MDJhYTU3MDRfNC0yLTEtMS0yNzIwODI_385684f3-001b-4ab2-aa31-227b41a15565"
      unitRef="shares">35443000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RhYmxlOmU4MjI4OTE4ODk1MTRkYjY5MTY4ODcwNTAyYWE1NzA0L3RhYmxlcmFuZ2U6ZTgyMjg5MTg4OTUxNGRiNjkxNjg4NzA1MDJhYTU3MDRfNC0yLTEtMS0yNzIwODI_8c006b9d-e2c5-4337-b5e2-b6a178e74865"
      unitRef="shares">35443000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RhYmxlOmU4MjI4OTE4ODk1MTRkYjY5MTY4ODcwNTAyYWE1NzA0L3RhYmxlcmFuZ2U6ZTgyMjg5MTg4OTUxNGRiNjkxNjg4NzA1MDJhYTU3MDRfNC00LTEtMS0yNTUzMzg_89795f83-8c84-4b4c-b3c9-b0069f69245c"
      unitRef="shares">34836000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RhYmxlOmU4MjI4OTE4ODk1MTRkYjY5MTY4ODcwNTAyYWE1NzA0L3RhYmxlcmFuZ2U6ZTgyMjg5MTg4OTUxNGRiNjkxNjg4NzA1MDJhYTU3MDRfNC00LTEtMS0yNTUzMzg_9951b953-c81d-44fe-9ecf-3b40b0af1afe"
      unitRef="shares">34836000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8zNy9mcmFnOjNkZWVkZGI1MmUzNDRjYWNhNTk4MzhhM2E0OWNjYzcxL3RleHRyZWdpb246M2RlZWRkYjUyZTM0NGNhY2E1OTgzOGEzYTQ5Y2NjNzFfNDU2Nw_b6dc51c8-8839-4b64-99ea-13a89c263c66">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;In October 2021, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") 2021-08, "&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:115%"&gt;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;," which requires contract assets and contract liabilities acquired in a business combination to be recognized and measured by the acquirer on the acquisition date in accordance with ASC 606, "&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:115%"&gt;Revenue from Contracts with Customers&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;," as if the acquirer had originated the contracts. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022, with early adoption permitted. We adopted ASU 2021-08 on January 1, 2023. Adoption did not have an impact on our condensed consolidated financial statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RleHRyZWdpb246MDNiMDQ5Y2Y2ZmJkNDFmOWE4MjIzNzI3MDc1MjMzNjFfMTYzMg_03fdebce-7e38-442f-893a-e3bf9483ec7a">Investment Securities and Fair Value Measurements&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&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;Investment Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;Investment securities classified as available-for-sale consisted of the following as of March&#160;31, 2023 and December&#160;31, 2022&#160;(in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:center"&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:43.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.208%"/&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="21" 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;March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&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;Gross Unrealized Gains&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;Gross Unrealized Losses&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;Estimated 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;Corporate bonds&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,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 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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;(52)&lt;/span&gt;&lt;/td&gt;&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;9,579&#160;&lt;/span&gt;&lt;/td&gt;&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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,259&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(317)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;58,249&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;(1,025)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,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;text-align:left;vertical-align: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 available-for-sale investment securities&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;79,139&#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;&#x2014;&#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;(1,394)&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;77,745&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:18pt;text-align:center"&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:43.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.208%"/&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="21" 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, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&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;Gross Unrealized Gains&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;Gross Unrealized Losses&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;Estimated 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;Corporate bonds&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;17,497&#160;&lt;/span&gt;&lt;/td&gt;&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&#160;&lt;/span&gt;&lt;/td&gt;&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;(112)&lt;/span&gt;&lt;/td&gt;&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;17,387&#160;&lt;/span&gt;&lt;/td&gt;&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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,507&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(484)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,023&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;81,605&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;(1,557)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;80,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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 available-for-sale investment securities&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;116,609&#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;2&#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;(2,153)&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;114,458&#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:6pt;margin-top:13pt;text-align:justify;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 March&#160;31, 2023, the decline in fair value below amortized cost basis was not considered other than temporary as it is more likely than not we will hold the securities until maturity or recovery of the cost basis. No allowance for credit losses for available-for-sale investment securities was recorded as of March&#160;31, 2023 or December&#160;31, 2022. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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 fair values of available-for-sale investment securities, by remaining contractual maturity, are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:center"&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:43.490%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&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.204%"/&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.204%"/&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.208%"/&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;March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&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;Estimated Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&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;Estimated 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;Due in one year or less&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;66,348&#160;&lt;/span&gt;&lt;/td&gt;&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;65,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 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;90,822&#160;&lt;/span&gt;&lt;/td&gt;&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;89,297&#160;&lt;/span&gt;&lt;/td&gt;&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;Due after one year through three years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,791&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,723&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,161&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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 available-for-sale investment securities&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;79,139&#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;77,745&#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;116,609&#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;114,458&#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:6pt;margin-top:7pt;text-align:justify;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 three months ended March&#160;31, 2023 and 2022, we had sales and maturities of investment securities, as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.490%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&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.204%"/&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.204%"/&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.208%"/&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="21" 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;Three Months Ended March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Gains&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;Gross Realized Losses&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;Gross Proceeds from Sales &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;Gross Proceeds from Maturities&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;Corporate bonds&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&#160;&lt;/span&gt;&lt;/td&gt;&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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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,013&#160;&lt;/span&gt;&lt;/td&gt;&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;6,860&#160;&lt;/span&gt;&lt;/td&gt;&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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,250&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,780&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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 #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 #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&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.204%"/&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.350%"/&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.208%"/&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="21" 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;Three Months Ended March 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Gains&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;Gross Realized Losses&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;Gross Proceeds from Sales&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;Gross Proceeds from Maturities&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;Corporate bonds&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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;12,343&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,343&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-indent:36pt"&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:6pt;margin-top:3pt;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;Recurring Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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 tables present our financial assets and liabilities measured at fair value on a recurring basis as of March&#160;31, 2023 and December&#160;31, 2022 by level within the fair value hierarchy (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.087%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&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.350%"/&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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.353%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level&#160;1&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;Level&#160;2&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Total&#160;Fair&lt;br/&gt;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;Cash equivalents:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;56,173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 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;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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,579&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,579&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,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;text-align:left;vertical-align: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;137,839&#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;20,521&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;158,360&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top: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:57.087%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&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.350%"/&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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.353%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level 1&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;Level&#160;2&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Total&#160;Fair&lt;br/&gt;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;Cash equivalents:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Money market funds&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;41,973&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;41,973&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;17,387&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,387&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,023&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,023&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 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;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;80,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;80,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;123,308&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;34,410&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;157,718&#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:6pt;margin-top:2pt;text-align:justify;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 carrying amounts of cash and cash equivalents, restricted cash, accounts receivable, accounts payable and accrued liabilities approximate their fair value because of the short maturity of these items. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;Fair value for our Level 1 investment securities is based on market prices for identical assets. Our Level 2 securities were priced by a pricing vendor. The pricing vendor utilizes the most recent observable market information in pricing these securities or, if specific prices are not available for these securities, other observable inputs like market transactions involving comparable securities are used.&lt;/span&gt;&lt;/div&gt;</us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RleHRyZWdpb246MDNiMDQ5Y2Y2ZmJkNDFmOWE4MjIzNzI3MDc1MjMzNjFfMTYyMw_736c2221-6281-4594-bc20-6149d996ef62">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;Investment securities classified as available-for-sale consisted of the following as of March&#160;31, 2023 and December&#160;31, 2022&#160;(in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:center"&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:43.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.208%"/&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="21" 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;March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&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;Gross Unrealized Gains&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;Gross Unrealized Losses&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;Estimated 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;Corporate bonds&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,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 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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;(52)&lt;/span&gt;&lt;/td&gt;&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;9,579&#160;&lt;/span&gt;&lt;/td&gt;&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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,259&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(317)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;58,249&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;(1,025)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,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;text-align:left;vertical-align: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 available-for-sale investment securities&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;79,139&#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;&#x2014;&#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;(1,394)&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;77,745&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:18pt;text-align:center"&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:43.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.208%"/&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="21" 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, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&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;Gross Unrealized Gains&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;Gross Unrealized Losses&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;Estimated 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;Corporate bonds&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;17,497&#160;&lt;/span&gt;&lt;/td&gt;&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&#160;&lt;/span&gt;&lt;/td&gt;&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;(112)&lt;/span&gt;&lt;/td&gt;&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;17,387&#160;&lt;/span&gt;&lt;/td&gt;&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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,507&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(484)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,023&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;81,605&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;(1,557)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;80,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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 available-for-sale investment securities&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;116,609&#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;2&#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;(2,153)&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;114,458&#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:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="id075e7e0d0774f9f8c67524821a9a734_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfMi0xLTEtMS0yNTUzMzg_aebbb828-4b3d-4e48-9893-3ecce2ec30ea"
      unitRef="usd">9631000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="id075e7e0d0774f9f8c67524821a9a734_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfMi0zLTEtMS0yNTUzMzg_faeee2bc-5bfe-44a6-9e12-03bd67cd2bb7"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="id075e7e0d0774f9f8c67524821a9a734_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfMi01LTEtMS0yNTUzMzg_c637c586-9c47-4c58-86cd-88e4c6b08731"
      unitRef="usd">52000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="id075e7e0d0774f9f8c67524821a9a734_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfMi03LTEtMS0yNTUzMzg_6eb70f26-a54f-43ec-80b0-987ce07b19ba"
      unitRef="usd">9579000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i7bdce1be37214564b5ee599dcb1a7ba0_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfMy0xLTEtMS0yNTUzMzg_d6738d9d-dedc-4794-90cd-2dcd8ac391ef"
      unitRef="usd">11259000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i7bdce1be37214564b5ee599dcb1a7ba0_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfMy0zLTEtMS0yNTUzMzg_45eeb631-d0ff-42f8-8b68-f647ff747b1b"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i7bdce1be37214564b5ee599dcb1a7ba0_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfMy01LTEtMS0yNTUzMzg_5e5d2431-8aa3-451a-853f-805829b70eba"
      unitRef="usd">317000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i7bdce1be37214564b5ee599dcb1a7ba0_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfMy03LTEtMS0yNTUzMzg_71fcd08c-c906-4467-9ad6-692be1b1fa79"
      unitRef="usd">10942000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i7b060616aca041308d78d054b981bbc7_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfNS0xLTEtMS0yNTUzMzg_c7d6580f-1f41-4bdf-8734-c0fa3f44252b"
      unitRef="usd">58249000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i7b060616aca041308d78d054b981bbc7_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfNS0zLTEtMS0yNTUzMzg_58534a98-fcbe-451d-870b-901608aa4501"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i7b060616aca041308d78d054b981bbc7_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfNS01LTEtMS0yNTUzMzg_cb3ea133-ca10-4103-b1df-1437029ea34e"
      unitRef="usd">1025000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i7b060616aca041308d78d054b981bbc7_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfNS03LTEtMS0yNTUzMzg_29b9db30-e47e-445e-aa4a-9050fab999fe"
      unitRef="usd">57224000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfNi0xLTEtMS0yNTUzMzg_219ef6e2-3b43-47ae-9a46-3ddb6cf0e107"
      unitRef="usd">79139000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfNi0zLTEtMS0yNTUzMzg_c489db0b-7b38-4141-b68e-9ee467a659e7"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfNi01LTEtMS0yNTUzMzg_be13c4fb-246e-4d3d-9163-450d6cb72d4f"
      unitRef="usd">1394000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjc1NzkyOGY0OGRiZDQ1YjZhNmI0YzA2MDYxMDMwZWY2L3RhYmxlcmFuZ2U6NzU3OTI4ZjQ4ZGJkNDViNmE2YjRjMDYwNjEwMzBlZjZfNi03LTEtMS0yNTUzMzg_81d2c048-b50e-4678-91a1-3bdf1254da68"
      unitRef="usd">77745000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="ie47191e572f24c668e0085bf8e61c938_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfMi0xLTEtMS0yNTUzMzg_a24a47ad-a00b-4281-84ea-8531eafaa3cb"
      unitRef="usd">17497000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ie47191e572f24c668e0085bf8e61c938_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfMi0zLTEtMS0yNTUzMzg_58189e41-a401-4dcc-a5d1-b75f2cb77d8a"
      unitRef="usd">2000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ie47191e572f24c668e0085bf8e61c938_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfMi01LTEtMS0yNTUzMzg_31b63f82-5cf5-4220-b8e4-06d3271bd510"
      unitRef="usd">112000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="ie47191e572f24c668e0085bf8e61c938_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfMi03LTEtMS0yNTUzMzg_69fb72f5-af5d-473d-b02a-af295c1d3d33"
      unitRef="usd">17387000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="if3e4fbedb5cd48bda7edc7761d1efe07_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfMy0xLTEtMS0yNTUzMzg_fe970456-26b1-4d9b-906d-a71901cf9943"
      unitRef="usd">17507000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="if3e4fbedb5cd48bda7edc7761d1efe07_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfMy0zLTEtMS0yNTUzMzg_1e301390-ba35-47f5-a6fd-d7a8eaaa926f"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="if3e4fbedb5cd48bda7edc7761d1efe07_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfMy01LTEtMS0yNTUzMzg_c4acb9a0-9d79-44a9-9f82-9bc5b571e2ea"
      unitRef="usd">484000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="if3e4fbedb5cd48bda7edc7761d1efe07_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfMy03LTEtMS0yNTUzMzg_01247a69-6430-4bf8-b917-b50edbef5dcb"
      unitRef="usd">17023000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="icfa2a46de8864281b5177fabc699bf45_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfNS0xLTEtMS0yNTUzMzg_0bf0a9d7-36f0-4d33-bd2e-4bb1ebf04ab6"
      unitRef="usd">81605000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="icfa2a46de8864281b5177fabc699bf45_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfNS0zLTEtMS0yNTUzMzg_3c32725f-db25-44a3-9aea-f1045b2c2c1a"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="icfa2a46de8864281b5177fabc699bf45_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfNS01LTEtMS0yNTUzMzg_0a06e414-c180-4a9d-bcec-996021c0de2e"
      unitRef="usd">1557000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="icfa2a46de8864281b5177fabc699bf45_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfNS03LTEtMS0yNTUzMzg_961c325e-6624-437f-952d-f818003157c1"
      unitRef="usd">80048000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfNi0xLTEtMS0yNTUzMzg_5210e482-990e-482a-b8eb-005ca8acbbb2"
      unitRef="usd">116609000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfNi0zLTEtMS0yNTUzMzg_a5b3d109-3691-4ab2-8056-d7b11e2c753b"
      unitRef="usd">2000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfNi01LTEtMS0yNTUzMzg_a6f854df-5188-4ac0-8a35-5c461cd9f183"
      unitRef="usd">2153000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmZiMGJjNjFlZTE1NzQ1YjdiNTY3NmM1Yzk0Zjg2YzIyL3RhYmxlcmFuZ2U6ZmIwYmM2MWVlMTU3NDViN2I1Njc2YzVjOTRmODZjMjJfNi03LTEtMS0yNTUzMzg_9d0032c8-992e-417f-a728-e88dc19b87b9"
      unitRef="usd">114458000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostAllowanceForCreditLossExcludingAccruedInterest
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RleHRyZWdpb246MDNiMDQ5Y2Y2ZmJkNDFmOWE4MjIzNzI3MDc1MjMzNjFfMzU4_7e837965-d22b-45d8-a6ee-1fca3075ed5e"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostAllowanceForCreditLossExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostAllowanceForCreditLossExcludingAccruedInterest
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RleHRyZWdpb246MDNiMDQ5Y2Y2ZmJkNDFmOWE4MjIzNzI3MDc1MjMzNjFfMzU4_7ea316a0-1dc4-4bdf-9dbe-54d59d3896d0"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostAllowanceForCreditLossExcludingAccruedInterest>
    <us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RleHRyZWdpb246MDNiMDQ5Y2Y2ZmJkNDFmOWE4MjIzNzI3MDc1MjMzNjFfMTYyOQ_c550d0f5-2e35-4d9b-8d6c-9b61a50103ae">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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 fair values of available-for-sale investment securities, by remaining contractual maturity, are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:center"&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:43.490%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&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.204%"/&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.204%"/&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.208%"/&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;March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&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;Estimated Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&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;Estimated 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;Due in one year or less&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;66,348&#160;&lt;/span&gt;&lt;/td&gt;&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;65,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 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;90,822&#160;&lt;/span&gt;&lt;/td&gt;&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;89,297&#160;&lt;/span&gt;&lt;/td&gt;&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;Due after one year through three years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,791&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,723&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,161&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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 available-for-sale investment securities&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;79,139&#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;77,745&#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;116,609&#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;114,458&#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:InvestmentsClassifiedByContractualMaturityDateTableTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfMi0xLTEtMS0yNTUzMzg_a2da2909-d501-4b1a-8ff3-efeef5a2472f"
      unitRef="usd">66348000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfMi0zLTEtMS0yNTUzMzg_d15343f3-8e2d-49b5-8078-308bcd8d6a66"
      unitRef="usd">65022000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfMi01LTEtMS0yNTUzMzg_78a3d1fe-e08e-4964-a7c1-6b94d3dfeb67"
      unitRef="usd">90822000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfMi03LTEtMS0yNTUzMzg_47f38b3c-1206-4bd7-a835-21529ca8ae0d"
      unitRef="usd">89297000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfMy0xLTEtMS0yNTUzMzg_7651cd39-fe9e-40d8-ab95-3bbd1d057c46"
      unitRef="usd">12791000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfMy0zLTEtMS0yNTUzMzg_8edfe059-7df5-46b8-8572-24d6cece5139"
      unitRef="usd">12723000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfMy01LTEtMS0yNTUzMzg_b1bc7d2e-908a-4d38-abc4-7b760e2cf5c7"
      unitRef="usd">25787000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfMy03LTEtMS0yNTUzMzg_2440f907-e934-46c0-a17c-0fce47a928dc"
      unitRef="usd">25161000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfNC0xLTEtMS0yNTUzMzg_e4471582-a23f-4d73-8ca0-5dcfdd10d349"
      unitRef="usd">79139000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfNC0zLTEtMS0yNTUzMzg_1126d7be-31fd-413c-9604-0b594b0aafa6"
      unitRef="usd">77745000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfNC01LTEtMS0yNTUzMzg_5d5c49d4-aa1c-4cbe-bd14-4f8dc8dc0cee"
      unitRef="usd">116609000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjY2MGY4N2Q3MmIxNzRkYmNiMGNlZTkwZWVkYWQxMGQwL3RhYmxlcmFuZ2U6NjYwZjg3ZDcyYjE3NGRiY2IwY2VlOTBlZWRhZDEwZDBfNC03LTEtMS0yNTUzMzg_6250da00-a0a8-473a-a652-ec4a5d89a54c"
      unitRef="usd">114458000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:ScheduleOfRealizedGainLossTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RleHRyZWdpb246MDNiMDQ5Y2Y2ZmJkNDFmOWE4MjIzNzI3MDc1MjMzNjFfMTYxNg_9817a01f-bf11-4293-86be-6c9854747b3f">During the three months ended March&#160;31, 2023 and 2022, we had sales and maturities of investment securities, as follows (in thousands):&lt;div style="margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.490%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&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.204%"/&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.204%"/&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.208%"/&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="21" 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;Three Months Ended March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Gains&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;Gross Realized Losses&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;Gross Proceeds from Sales &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;Gross Proceeds from Maturities&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;Corporate bonds&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&#160;&lt;/span&gt;&lt;/td&gt;&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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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,013&#160;&lt;/span&gt;&lt;/td&gt;&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;6,860&#160;&lt;/span&gt;&lt;/td&gt;&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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,250&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,780&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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 #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 #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&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.204%"/&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.350%"/&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.208%"/&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="21" 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;Three Months Ended March 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Gains&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;Gross Realized Losses&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;Gross Proceeds from Sales&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;Gross Proceeds from Maturities&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;Corporate bonds&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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;12,343&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,343&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRealizedGainLossTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="id42fdcd085d54fe4ad5a4a91ee3c1a77_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfMi0xLTEtMS0yNTUzMzg_012b245e-3c19-4a5e-95dd-96aed38c8e32"
      unitRef="usd">3000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="id42fdcd085d54fe4ad5a4a91ee3c1a77_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfMi0zLTEtMS0yNTUzMzg_3dbb886d-1b5f-4f45-8148-8886b75db72c"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="id42fdcd085d54fe4ad5a4a91ee3c1a77_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfMi01LTEtMS0yNTUzMzg_83fca16c-8144-4fd7-974a-f114d2868392"
      unitRef="usd">1013000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="id42fdcd085d54fe4ad5a4a91ee3c1a77_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfMi03LTEtMS0yNTUzMzg_3c25bb0a-1f07-45fc-82fc-86c817650553"
      unitRef="usd">6860000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i901bef7701a34285b99ed009f614108a_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfMy0xLTEtMS0yNTUzMzg_fad4266f-1d09-4f13-b270-6f422a027480"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i901bef7701a34285b99ed009f614108a_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfMy0zLTEtMS0yNTUzMzg_9a3dbe9f-5724-4a11-a586-a35c7d98a02f"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i901bef7701a34285b99ed009f614108a_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfMy01LTEtMS0yNTUzMzg_8fb54538-f86f-4bdb-bd93-eb059fd09968"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i901bef7701a34285b99ed009f614108a_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfMy03LTEtMS0yNTUzMzg_d2d30de5-af81-4f93-a64f-0b4479ee8013"
      unitRef="usd">6250000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i436198f331684106b56a2412cd0165ed_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfNS0xLTEtMS0yNTUzMzg_5998e6e6-a47f-4f8b-ba58-5de1bc7c4b4f"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i436198f331684106b56a2412cd0165ed_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfNS0zLTEtMS0yNTUzMzg_4e9cd2a9-8daa-4dae-b798-cfa615ba9729"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i436198f331684106b56a2412cd0165ed_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfNS01LTEtMS0yNTUzMzg_eaa0e3a3-f9c7-4530-8743-fbf6d11f1dbb"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i436198f331684106b56a2412cd0165ed_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfNS03LTEtMS0yNTUzMzg_7558ced3-9ee5-4b1d-87c4-a7375736e614"
      unitRef="usd">24780000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfNi0xLTEtMS0yNTUzMzg_1c73b9ba-1d76-4e54-9913-d90151da8c97"
      unitRef="usd">3000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfNi0zLTEtMS0yNTUzMzg_3e409769-b132-47a8-b2f7-87455aa0f4b0"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfNi01LTEtMS0yNTUzMzg_ac200e22-fd2e-43a4-87fa-7c9a9843ccd7"
      unitRef="usd">1013000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxOGI4MmUyOWJhZDQ4ZTE5YmM1NzE2NGNjOGNlNTRhL3RhYmxlcmFuZ2U6MDE4YjgyZTI5YmFkNDhlMTliYzU3MTY0Y2M4Y2U1NGFfNi03LTEtMS0yNTUzMzg_89cfcdf3-fa62-4c4b-85b4-eea58e7301c3"
      unitRef="usd">37890000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="id857fe26faaf49b790f2f946be13c886_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfMi0xLTEtMS0yNTUzMzg_d3839b6a-7236-4163-a1fa-e39e800d5890"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="id857fe26faaf49b790f2f946be13c886_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfMi0zLTEtMS0yNTUzMzg_5b7bfd84-f53c-4567-9ea9-b1b7c8277826"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="id857fe26faaf49b790f2f946be13c886_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfMi01LTEtMS0yNTUzMzg_83f19ccb-8698-4e07-9869-f84202e413b1"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="id857fe26faaf49b790f2f946be13c886_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfMi03LTEtMS0yNTUzMzg_fba572cb-59c8-43dd-99f9-e87d93df4c9f"
      unitRef="usd">12343000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i402d878ffbdf4506bf9880e9396f111d_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfNS0xLTEtMS0yNTUzMzg_43162731-424f-4fbd-88d4-17f832b8e0d9"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i402d878ffbdf4506bf9880e9396f111d_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfNS0zLTEtMS0yNTUzMzg_a911a3f5-efd8-40d6-9ad0-9a11d5bc8563"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i402d878ffbdf4506bf9880e9396f111d_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfNS01LTEtMS0yNTUzMzg_9e8b0811-2407-43e0-8707-609e35538723"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i402d878ffbdf4506bf9880e9396f111d_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfNS03LTEtMS0yNTUzMzg_1921d38e-2cea-4c32-8dfe-0a277ecd73a1"
      unitRef="usd">11000000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfNi0xLTEtMS0yNTUzMzg_ddb9f2ce-b81b-48ad-bb47-fd3c07c2a3e8"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfNi0zLTEtMS0yNTUzMzg_5d25063b-416e-413a-9471-d6901e9004e7"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfNi01LTEtMS0yNTUzMzg_43e1c0d1-fdca-42ff-8f1e-bae64b58a0b7"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjAxMWUwYTM3MGUyODRjZTA5YTg3YTFkZWM2YWMxZDI3L3RhYmxlcmFuZ2U6MDExZTBhMzcwZTI4NGNlMDlhODdhMWRlYzZhYzFkMjdfNi03LTEtMS0yNTUzMzg_a924cedc-d5d6-4402-961c-4bc3953e839a"
      unitRef="usd">23343000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RleHRyZWdpb246MDNiMDQ5Y2Y2ZmJkNDFmOWE4MjIzNzI3MDc1MjMzNjFfMTYzMQ_e0dde72d-1bb5-4e69-84fa-a460206d3562">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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 tables present our financial assets and liabilities measured at fair value on a recurring basis as of March&#160;31, 2023 and December&#160;31, 2022 by level within the fair value hierarchy (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.087%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&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.350%"/&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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.353%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level&#160;1&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;Level&#160;2&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Total&#160;Fair&lt;br/&gt;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;Cash equivalents:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;56,173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,173&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 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;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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,579&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,579&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,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;text-align:left;vertical-align: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;137,839&#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;20,521&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;158,360&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top: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:57.087%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&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.350%"/&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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.353%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level 1&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;Level&#160;2&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Total&#160;Fair&lt;br/&gt;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;Cash equivalents:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Money market funds&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;41,973&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;41,973&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;17,387&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,387&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,023&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,023&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 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;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;80,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;80,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;123,308&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;34,410&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;157,718&#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:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i93f0595321f84a078fa656e57ea0e8b9_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfMy0xLTEtMS0yNTUzMzg_cdd6ac83-f990-4879-a62d-c2662a33a302"
      unitRef="usd">24442000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i879e13a73cbd4e73bb43e519abd64fa2_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfMy0zLTEtMS0yNTUzMzg_530acd09-58bc-4dba-abf5-bc3e2bd19487"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i9916cbe79b104fb5a3e8f4a2b322420e_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfMy03LTEtMS0yNTUzMzg_a8b6d22d-999c-485c-b7c7-d213c4990a8d"
      unitRef="usd">24442000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i40965b013e16453489dfd8cecb53b0fc_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfNC0xLTEtMS0yNTUzMzg_da648089-4457-4066-8385-ff87e77133bd"
      unitRef="usd">56173000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ife9f33a41fa648828486e9531de87fd0_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfNC0zLTEtMS0yNTUzMzg_d8bf20e7-0a0e-4427-8d45-d99fe1606cec"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i9fcd494ae4214bb5b9b93ee746fdbbf9_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfNC03LTEtMS0yNTUzMzg_2adb3984-5d67-4980-8ce7-e0a126304fe5"
      unitRef="usd">56173000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="if5ea8a0eba394cdaaaf748e06755d285_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfNy0xLTEtMS0yNTUzMzg_d1ebfd07-9ef8-4199-86ae-b35c0c3ac230"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="if5ee4ed584454fafbfae091eb3c26094_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfNy0zLTEtMS0yNTUzMzg_2c249867-d4be-4e31-b0ae-81d1bd82153b"
      unitRef="usd">9579000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i509d96557846412d910841f429a94240_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfNy03LTEtMS0yNTUzMzg_3f997eda-45d2-47c8-8f40-e23fa5117864"
      unitRef="usd">9579000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i2d20e40ac61645319ef66e021e2777a1_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfOC0xLTEtMS0yNTUzMzg_787c29d9-aea0-48df-979d-9bad4480fbea"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i041046e1f4054da1a43d858900103041_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfOC0zLTEtMS0yNTUzMzg_e0a8087a-5873-427b-8485-876fb4694588"
      unitRef="usd">10942000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="idae91140f806429eb864352b0a0104e2_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfOC03LTEtMS0yNTUzMzg_03f776a6-277d-47dd-9501-4f901b895123"
      unitRef="usd">10942000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i7e4adca4627548779b336407478ac673_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfMTAtMS0xLTEtMjU1MzM4_aa0c47f2-1d58-4f4b-8394-178b07a7c3a0"
      unitRef="usd">57224000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i21e6a301f60748319299a6a70a139528_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfMTAtMy0xLTEtMjU1MzM4_d6af8c42-b147-45fe-a62e-6ec092a4459c"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="ifde469999e7e4bb19c291ef00401ee75_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfMTAtNy0xLTEtMjU1MzM4_d1811bd6-1da4-4061-911a-799cd8ae3fa2"
      unitRef="usd">57224000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i1c320f4b2e254becbd4d55895658394b_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfMTEtMS0xLTEtMjU1MzM4_8ec659f2-ceed-4f20-bb65-99b6931ee1e9"
      unitRef="usd">137839000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i1c24f8c8d6dd4148bcd3111d630d27fb_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfMTEtMy0xLTEtMjU1MzM4_d1d04bea-0b36-48f7-aeba-9fe4308f781d"
      unitRef="usd">20521000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i19ee7bd20f90446aa9d55d6c0d57e383_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOmI1MDc1YjA4MzIyMDRlZTdhNjA2N2JmYTI2YmRhZjY2L3RhYmxlcmFuZ2U6YjUwNzViMDgzMjIwNGVlN2E2MDY3YmZhMjZiZGFmNjZfMTEtNy0xLTEtMjU1MzM4_e3ee59ef-464e-466f-ad79-993c891ebb2c"
      unitRef="usd">158360000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i8c83f18031fc46f18eb2da4d992f3418_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfMy0xLTEtMS0yNTUzMzg_f81eb969-b3ea-444c-8efb-4680b1e888a0"
      unitRef="usd">41973000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ie4ef0b42684b4c25aaa53480fb6bb3af_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfMy0zLTEtMS0yNTUzMzg_83baf0f1-3fef-4f21-9f75-b28fb701c49e"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ib1e1429462614cd1be6270bb01e572e6_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfMy03LTEtMS0yNTUzMzg_649d37c7-03e0-4b43-9551-08e2134a127a"
      unitRef="usd">41973000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i413fe83142c14dcdb1421bbb3d330efc_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfNC0xLTEtMS0yNTUzMzg_54d4a0a5-f6bb-485e-8713-7c9f61332c8e"
      unitRef="usd">1287000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i50b8e2f1f0ab42e19bd905347dd7051a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfNC0zLTEtMS0yNTUzMzg_7d49d81a-34d0-4fb1-8912-11d306e5960f"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i3a0445a759274d36a2503f5aa6012b40_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfNC03LTEtMS0yNTUzMzg_79acdf08-c113-497c-8cc7-9a3593be2fba"
      unitRef="usd">1287000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i720b3f7c72584c9482c746c9c0d8417c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfNi0xLTEtMS0yNTUzMzg_6042d28c-7eb6-4000-a851-88dd1a12762b"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="ie07919bdcdd44859b9a282f4fb35d10f_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfNi0zLTEtMS0yNTUzMzg_957e3e17-59ba-49fb-9c75-ced71346490b"
      unitRef="usd">17387000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i93fc16f6f6c74582b647adb057272887_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfNi03LTEtMS0yNTUzMzg_011af47e-379e-4d80-9b83-6324fcbe7c07"
      unitRef="usd">17387000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i87e0f6978e784ce490597da9adf626f2_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfNy0xLTEtMS0yNTUzMzg_8e37a3f0-47eb-441a-a9c1-ec69325a0316"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i831796bfa867481ea2dddde150e8d861_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfNy0zLTEtMS0yNTUzMzg_b6338bdc-793c-40b5-81d7-e42cefa8d2c0"
      unitRef="usd">17023000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i1c817977783f4d86bf8816f541bdc628_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfNy03LTEtMS0yNTUzMzg_35165c29-6813-4d13-87d8-b6c913c79824"
      unitRef="usd">17023000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i400afc4fffcd41168d72dd579b846b49_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfOS0xLTEtMS0yNTUzMzg_05f1ba6c-a443-485a-a131-bdd0897959fd"
      unitRef="usd">80048000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i330b9948b73f4203964db46e6fffa38c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfOS0zLTEtMS0yNTUzMzg_272da748-2354-4247-8c78-b5b65af24f44"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="iba3313206fb64bb29df51a78c2c61d95_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfOS03LTEtMS0yNTUzMzg_dc38050d-d2fe-408d-921e-a9ee0f15bf15"
      unitRef="usd">80048000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="ib776fce6eeb84cb99d5d9c8726ae2971_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfMTAtMS0xLTEtMjU1MzM4_f51cb4da-6777-44c0-addb-a91a31e7cd8f"
      unitRef="usd">123308000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i5f44f755dc3c4be8860ba7d3c02af6b4_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfMTAtMy0xLTEtMjU1MzM4_80ba3172-b79a-466b-bbff-4d13bdfb004e"
      unitRef="usd">34410000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i75aa28e7510a4108a79cd4b165895b29_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80My9mcmFnOjAzYjA0OWNmNmZiZDQxZjlhODIyMzcyNzA3NTIzMzYxL3RhYmxlOjExMDIwYTc0N2FkNDQ4YjE4NmJhZjVhZjZlN2IyOWVkL3RhYmxlcmFuZ2U6MTEwMjBhNzQ3YWQ0NDhiMTg2YmFmNWFmNmU3YjI5ZWRfMTAtNy0xLTEtMjU1MzM4_29226c0b-731e-4f28-a659-377c5e893c0d"
      unitRef="usd">157718000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RleHRyZWdpb246NjU0ODliNzMxYzJmNDhkMTg2NmNmNzUyNjQ3OGIyYzlfNzI3_23e970c0-5698-49b6-8328-2574a92180fd">Capitalized Software Development Costs, net&lt;div style="margin-top:6pt;text-align:justify;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;Capitalized software development costs were as follows (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.952%"/&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.788%"/&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.500%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31,&lt;br/&gt;2023&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;December 31,&lt;br/&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalized software development costs, gross&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #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;128,120&#160;&lt;/span&gt;&lt;/td&gt;&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;129,749&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Accumulated amortization&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;(97,653)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,434)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalized software development costs, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #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;30,467&#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;35,315&#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:6pt;margin-top:7pt;text-align:justify;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;Capitalized software development costs were&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; $1.0 million&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; and $4.1 million for the three months ended March&#160;31, 2023 and 2022, respectively. Amortization expense with respect to capitalized software development costs totaled &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$5.9 million &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;and $6.1 million for the three months ended March&#160;31, 2023 and 2022. During the three months ended March&#160;31, 2023 and 2022, we disposed of &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$2.2 million&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; and $0.8 million, respectively, of fully amortized capitalized software development costs. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;Future amortization expense with respect to capitalized software development costs is estimated as follows (in thousands):&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:84.426%"/&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.644%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="9" 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;Years Ending December 31,&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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;13,707&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,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;2025&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;4,567&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;2026&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;595&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;&#160;&#160;&#160;&#160;Total amortization expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #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 #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock>
    <appf:ScheduleOfCapitalizedComputerSoftwareTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RleHRyZWdpb246NjU0ODliNzMxYzJmNDhkMTg2NmNmNzUyNjQ3OGIyYzlfNzMw_c77c19ba-cf33-4aa9-8a5a-a8a31ae8cb87">&lt;div style="margin-top:6pt;text-align:justify;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;Capitalized software development costs were as follows (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.952%"/&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.788%"/&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.500%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31,&lt;br/&gt;2023&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;December 31,&lt;br/&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalized software development costs, gross&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #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;128,120&#160;&lt;/span&gt;&lt;/td&gt;&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;129,749&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Accumulated amortization&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;(97,653)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,434)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalized software development costs, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #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;30,467&#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;35,315&#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;</appf:ScheduleOfCapitalizedComputerSoftwareTableTextBlock>
    <us-gaap:CapitalizedComputerSoftwareGross
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjJmZmY0NTU1NWMwZjQ1YzhhMWNhYjYyMmY4ZGEyMGZjL3RhYmxlcmFuZ2U6MmZmZjQ1NTU1YzBmNDVjOGExY2FiNjIyZjhkYTIwZmNfMS0yLTEtMS0yNTUzMzg_294ff187-1e18-42fb-adef-c4c6b21d855e"
      unitRef="usd">128120000</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareGross
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjJmZmY0NTU1NWMwZjQ1YzhhMWNhYjYyMmY4ZGEyMGZjL3RhYmxlcmFuZ2U6MmZmZjQ1NTU1YzBmNDVjOGExY2FiNjIyZjhkYTIwZmNfMS00LTEtMS0yNTUzMzg_cc092f7d-293b-4784-8690-21a576c13607"
      unitRef="usd">129749000</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjJmZmY0NTU1NWMwZjQ1YzhhMWNhYjYyMmY4ZGEyMGZjL3RhYmxlcmFuZ2U6MmZmZjQ1NTU1YzBmNDVjOGExY2FiNjIyZjhkYTIwZmNfMi0yLTEtMS0yNTUzMzg_a21c7b3d-b5c8-4627-a7e9-e09dc5e19d38"
      unitRef="usd">97653000</us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization>
    <us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjJmZmY0NTU1NWMwZjQ1YzhhMWNhYjYyMmY4ZGEyMGZjL3RhYmxlcmFuZ2U6MmZmZjQ1NTU1YzBmNDVjOGExY2FiNjIyZjhkYTIwZmNfMi00LTEtMS0yNTUzMzg_406ec543-368b-4b03-9d1e-c3332ffec631"
      unitRef="usd">94434000</us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjJmZmY0NTU1NWMwZjQ1YzhhMWNhYjYyMmY4ZGEyMGZjL3RhYmxlcmFuZ2U6MmZmZjQ1NTU1YzBmNDVjOGExY2FiNjIyZjhkYTIwZmNfMy0yLTEtMS0yNTUzMzg_ae2361b5-d5e3-4adc-88bd-d3d6ae7feeb5"
      unitRef="usd">30467000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjJmZmY0NTU1NWMwZjQ1YzhhMWNhYjYyMmY4ZGEyMGZjL3RhYmxlcmFuZ2U6MmZmZjQ1NTU1YzBmNDVjOGExY2FiNjIyZjhkYTIwZmNfMy00LTEtMS0yNTUzMzg_5d607331-4076-4d33-81aa-6a7d44a46069"
      unitRef="usd">35315000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RleHRyZWdpb246NjU0ODliNzMxYzJmNDhkMTg2NmNmNzUyNjQ3OGIyYzlfMTI5_1063d21a-fe14-4f2c-96b3-8a87dba7cd3f"
      unitRef="usd">1000000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RleHRyZWdpb246NjU0ODliNzMxYzJmNDhkMTg2NmNmNzUyNjQ3OGIyYzlfMTM2_4a0ad3f4-dbb1-4cf2-ac89-79eec5c646ad"
      unitRef="usd">4100000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RleHRyZWdpb246NjU0ODliNzMxYzJmNDhkMTg2NmNmNzUyNjQ3OGIyYzlfMzM4_52e907c5-b4e5-48b5-9d81-be0bf5e91a5d"
      unitRef="usd">5900000</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RleHRyZWdpb246NjU0ODliNzMxYzJmNDhkMTg2NmNmNzUyNjQ3OGIyYzlfMzQ1_6c957ee4-04c5-403e-9759-21c641fbb57d"
      unitRef="usd">6100000</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <appf:CapitalizedComputerSoftwareDisposals
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RleHRyZWdpb246NjU0ODliNzMxYzJmNDhkMTg2NmNmNzUyNjQ3OGIyYzlfNTE5_37ddad8b-18ae-4f93-8748-71299aa50ce3"
      unitRef="usd">2200000</appf:CapitalizedComputerSoftwareDisposals>
    <appf:CapitalizedComputerSoftwareDisposals
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RleHRyZWdpb246NjU0ODliNzMxYzJmNDhkMTg2NmNmNzUyNjQ3OGIyYzlfMTA5OTUxMTYyODY2Mw_7bda8472-a0a8-487f-ab51-68c858572c5e"
      unitRef="usd">800000</appf:CapitalizedComputerSoftwareDisposals>
    <appf:ScheduleOfCapitalizedComputerSoftwareFutureAmortizationExpenseTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RleHRyZWdpb246NjU0ODliNzMxYzJmNDhkMTg2NmNmNzUyNjQ3OGIyYzlfNzMz_fdd77144-e878-4651-9980-13e2d9e3f5c3">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;Future amortization expense with respect to capitalized software development costs is estimated as follows (in thousands):&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:84.426%"/&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.644%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="9" 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;Years Ending December 31,&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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;13,707&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,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;2025&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;4,567&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;2026&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;595&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;&#160;&#160;&#160;&#160;Total amortization expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #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 #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</appf:ScheduleOfCapitalizedComputerSoftwareFutureAmortizationExpenseTableTextBlock>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseRemainderofFiscalYear
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjRmOWY4NjM3Y2ZlNTRiZjQ4ZDc1NzI3M2JiZjY4NTg3L3RhYmxlcmFuZ2U6NGY5Zjg2MzdjZmU1NGJmNDhkNzU3MjczYmJmNjg1ODdfMS0yLTEtMS0yNTUzMzg_45987837-2ba3-4e2b-b0f4-fa0c98415eeb"
      unitRef="usd">13707000</appf:CapitalizedComputerSoftwareAmortizationExpenseRemainderofFiscalYear>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseYearOne
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjRmOWY4NjM3Y2ZlNTRiZjQ4ZDc1NzI3M2JiZjY4NTg3L3RhYmxlcmFuZ2U6NGY5Zjg2MzdjZmU1NGJmNDhkNzU3MjczYmJmNjg1ODdfMi0yLTEtMS0yNTUzMzg_def7cc9f-c402-4e03-8074-b2e84af3984d"
      unitRef="usd">11598000</appf:CapitalizedComputerSoftwareAmortizationExpenseYearOne>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseYearTwo
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjRmOWY4NjM3Y2ZlNTRiZjQ4ZDc1NzI3M2JiZjY4NTg3L3RhYmxlcmFuZ2U6NGY5Zjg2MzdjZmU1NGJmNDhkNzU3MjczYmJmNjg1ODdfMy0yLTEtMS0yNTUzMzg_3870f61b-4d39-444c-99dc-10380fcf57e3"
      unitRef="usd">4567000</appf:CapitalizedComputerSoftwareAmortizationExpenseYearTwo>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseYearThree
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjRmOWY4NjM3Y2ZlNTRiZjQ4ZDc1NzI3M2JiZjY4NTg3L3RhYmxlcmFuZ2U6NGY5Zjg2MzdjZmU1NGJmNDhkNzU3MjczYmJmNjg1ODdfNC0yLTEtMS0yNTUzMzg_590de33b-8df3-4c37-85f5-46417e7d0549"
      unitRef="usd">595000</appf:CapitalizedComputerSoftwareAmortizationExpenseYearThree>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80Ni9mcmFnOjY1NDg5YjczMWMyZjQ4ZDE4NjZjZjc1MjY0NzhiMmM5L3RhYmxlOjRmOWY4NjM3Y2ZlNTRiZjQ4ZDc1NzI3M2JiZjY4NTg3L3RhYmxlcmFuZ2U6NGY5Zjg2MzdjZmU1NGJmNDhkNzU3MjczYmJmNjg1ODdfNi0yLTEtMS0yNTUzMzg_d88391d0-e44d-42ee-ad8c-172e6d41b960"
      unitRef="usd">30467000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RleHRyZWdpb246MzgzMzU1NzljNDc0NDEwNjg3ODllYzkzMzUyNTVmN2ZfNTU1_f539118d-8c45-4f21-ae1d-e00f4bbf4a61">Intangible Assets, net&lt;div style="margin-top:6pt;text-align:justify;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;Intangible assets consisted of the following (in thousands, except years):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;text-align:center"&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:37.992%"/&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:13.394%"/&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:13.394%"/&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:13.394%"/&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:13.398%"/&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:0 1pt"/&gt;&lt;td colspan="21" 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;March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding: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;Gross&#160;Carrying&lt;br/&gt;Value&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;Accumulated&lt;br/&gt;Amortization&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;Net&#160;Carrying&lt;br/&gt;Value&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;Weighted Average&#160;Useful Life in 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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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,503)&lt;/span&gt;&lt;/td&gt;&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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align: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.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Database&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;4,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,002)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,708&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&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;6,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,539)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="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;4.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks and trade names&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;1,520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,288)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Partner relationships&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;680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(680)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="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;3.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&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;7,340&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,239)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,101&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Domain names&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;90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(84)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Patents&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;252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(252)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total intangible assets, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;22,801&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(18,587)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,214&#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 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;5.8&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:1pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:37.935%"/&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:13.666%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.373%"/&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:13.373%"/&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:13.379%"/&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:0 1pt"/&gt;&lt;td colspan="21" 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, 2022&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: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;Gross&#160;Carrying&lt;br/&gt;Value&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;Accumulated&lt;br/&gt;Amortization&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;Net&#160;Carrying&lt;br/&gt;Value&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;Weighted Average&#160;Useful Life in 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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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,448)&lt;/span&gt;&lt;/td&gt;&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;222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align: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.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Database&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;4,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,884)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,826&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&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;6,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,539)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="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;4.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks and trade names&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;1,520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,211)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Partner relationships&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;680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(680)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="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;3.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&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;7,340&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,872)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,468&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Domain names&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;90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(82)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Patents&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;252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(252)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total intangible assets, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,801&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(17,968)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,833&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td 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;4.7&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;text-align:justify;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;Amortization expense with respect to intangible assets totaled &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$0.6 million&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; and $1.2 million for the three months ended March&#160;31, 2023 and 2022, respectively. Future amortization expense with respect to intangible assets is estimated as follows (in thousands):&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:85.449%"/&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:11.621%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="9" 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;Years Ending December 31,&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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;1,857&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;2024&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;473&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;2025&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;471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;2026&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;471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;2027&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;471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;&#160;&#160;&#160;&#160;Total amortization expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #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;4,214&#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:GoodwillAndIntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RleHRyZWdpb246MzgzMzU1NzljNDc0NDEwNjg3ODllYzkzMzUyNTVmN2ZfNTYx_eaca6e0c-e956-40ca-896f-2ad8bef42503">&lt;div style="margin-top:6pt;text-align:justify;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;Intangible assets consisted of the following (in thousands, except years):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;text-align:center"&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:37.992%"/&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:13.394%"/&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:13.394%"/&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:13.394%"/&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:13.398%"/&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:0 1pt"/&gt;&lt;td colspan="21" 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;March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding: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;Gross&#160;Carrying&lt;br/&gt;Value&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;Accumulated&lt;br/&gt;Amortization&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;Net&#160;Carrying&lt;br/&gt;Value&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;Weighted Average&#160;Useful Life in 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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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,503)&lt;/span&gt;&lt;/td&gt;&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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align: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.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Database&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;4,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,002)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,708&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&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;6,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,539)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="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;4.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks and trade names&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;1,520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,288)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Partner relationships&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;680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(680)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="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;3.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&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;7,340&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,239)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,101&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Domain names&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;90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(84)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Patents&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;252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(252)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total intangible assets, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;22,801&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(18,587)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,214&#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 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;5.8&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:1pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:37.935%"/&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:13.666%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.373%"/&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:13.373%"/&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:13.379%"/&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:0 1pt"/&gt;&lt;td colspan="21" 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, 2022&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: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;Gross&#160;Carrying&lt;br/&gt;Value&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;Accumulated&lt;br/&gt;Amortization&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;Net&#160;Carrying&lt;br/&gt;Value&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;Weighted Average&#160;Useful Life in 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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="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,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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,448)&lt;/span&gt;&lt;/td&gt;&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;222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align: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.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Database&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;4,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,884)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,826&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&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;6,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,539)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="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;4.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks and trade names&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;1,520&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,211)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Partner relationships&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;680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(680)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="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;3.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&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;7,340&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,872)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,468&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Domain names&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;90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(82)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Patents&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;252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(252)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total intangible assets, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,801&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(17,968)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,833&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td 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;4.7&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i695a55d9f978464db80875027bdfa9a4_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMi0yLTEtMS0yNTUzMzg_f16ac945-2249-4381-8379-9b87bc28c085"
      unitRef="usd">1670000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i695a55d9f978464db80875027bdfa9a4_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMi00LTEtMS0yNTUzMzg_bb2e78f1-b67a-4219-908e-5c2233990138"
      unitRef="usd">1503000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i695a55d9f978464db80875027bdfa9a4_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMi02LTEtMS0yNTUzMzg_d551430b-8925-4421-bf05-fa4e429200fe"
      unitRef="usd">167000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i418367ed21a04e63a92e9a2183c751e1_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMi04LTEtMS0yNTUzMzg_ccf7fc58-501e-4762-a1a0-521b505c7e9a">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i2db78fdfe72e48219a44c5f0308a860e_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMy0yLTEtMS0yNTUzMzg_1319aba7-fbea-4689-ad80-fddb15b819bc"
      unitRef="usd">4710000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i2db78fdfe72e48219a44c5f0308a860e_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMy00LTEtMS0yNTUzMzg_2c970c60-e6f3-4c2a-a73f-58232b8677fb"
      unitRef="usd">2002000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i2db78fdfe72e48219a44c5f0308a860e_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMy02LTEtMS0yNTUzMzg_016e7775-b7f8-45e2-a5dc-aa60322ace5c"
      unitRef="usd">2708000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i5709bd053c2e40c19dc0d3ca5e7b89d7_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMy04LTEtMS0yNTUzMzg_dcce4dfb-7a3f-4b2a-ad7e-88b319f9a4e7">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i32e8d79981d842a1907e35d173cbd288_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNC0yLTEtMS0yNTUzMzg_a4e09c94-ccc0-4cca-aa8c-967cfa21e4d7"
      unitRef="usd">6539000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i32e8d79981d842a1907e35d173cbd288_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNC00LTEtMS0yNTUzMzg_4b92ecd3-901c-4b0a-8846-8a8b464fe13a"
      unitRef="usd">6539000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i32e8d79981d842a1907e35d173cbd288_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNC02LTEtMS0yNTUzMzg_63d3c7a0-6aac-4d3e-871f-485bc0409b80"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ic5ef5f32a9eb4de5ae364a6ea9b31acd_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNC04LTEtMS0yNTUzMzg_032d5be9-c75b-4007-9daa-3e9aa297d852">P4Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i2bf3a885b8c0459db94d3a82d02ce1f0_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNS0yLTEtMS0yNTUzMzg_23559500-8270-4674-b64f-c0490c8a0cf8"
      unitRef="usd">1520000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i2bf3a885b8c0459db94d3a82d02ce1f0_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNS00LTEtMS0yNTUzMzg_ad384eaa-881e-4302-81fa-3c36c6a43c77"
      unitRef="usd">1288000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i2bf3a885b8c0459db94d3a82d02ce1f0_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNS02LTEtMS0yNTUzMzg_1a12365c-268b-42cc-ae6d-5b280c6fc41c"
      unitRef="usd">232000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ie08b859d917b4f178047a6fa5a82e9bc_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNS04LTEtMS0yNTUzMzg_3f08297f-9aa3-4f33-a45a-400eb634645b">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="if7838acbbcd6487685e898320993e2d3_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNi0yLTEtMS0yNTUzMzg_92659b97-8ee8-426f-a49e-9fe051e81376"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="if7838acbbcd6487685e898320993e2d3_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNi00LTEtMS0yNTUzMzg_c9b89e82-4f8a-48fd-a425-c6b5a07e6b9f"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="if7838acbbcd6487685e898320993e2d3_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNi02LTEtMS0yNTUzMzg_a829f255-f89c-4263-81c8-19546620b55b"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i68ebf6455ec747eab08eab18fadf2ef9_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNi04LTEtMS0yNTUzMzg_3f3b60e6-8caf-49b6-9dc3-63e0614e7fbc">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i9f2986b82f954ee7b16c2f4df0b6b40c_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNy0yLTEtMS0yNTUzMzg_98d55c6f-1de2-486e-b756-a2df1be492f9"
      unitRef="usd">7340000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i9f2986b82f954ee7b16c2f4df0b6b40c_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNy00LTEtMS0yNTUzMzg_1ba53a60-869c-475e-b6d9-ea463d960f48"
      unitRef="usd">6239000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i9f2986b82f954ee7b16c2f4df0b6b40c_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNy02LTEtMS0yNTUzMzg_3c88d96d-ac53-43a8-bb03-b4d79f10f184"
      unitRef="usd">1101000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ib41559f2f3ab4d448670535ed76f4f49_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfNy04LTEtMS0yNTUzMzg_e1a871db-dcf8-42d4-b9ce-3359725d0b15">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i51ff67078ea1417b8f34dc6a7d8c1783_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfOC0yLTEtMS0yNTUzMzg_5e32f133-3366-45fa-93f6-3c157a4b12d8"
      unitRef="usd">90000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i51ff67078ea1417b8f34dc6a7d8c1783_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfOC00LTEtMS0yNTUzMzg_1261edda-bb92-443d-9811-c5bcf78ee9cc"
      unitRef="usd">84000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i51ff67078ea1417b8f34dc6a7d8c1783_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfOC02LTEtMS0yNTUzMzg_d5cad601-e1b2-4da1-82a9-4fdf172d8a5d"
      unitRef="usd">6000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i0a259d91d18c4f21971378261625510f_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfOC04LTEtMS0yNTUzMzg_5f830afd-dd8e-4fcb-b0c5-efd631636b3b">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i46783fc4476b44f4b20a9641bc01e3ea_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfOS0yLTEtMS0yNTUzMzg_75b5026b-90bd-46d7-a530-c51486800244"
      unitRef="usd">252000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i46783fc4476b44f4b20a9641bc01e3ea_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfOS00LTEtMS0yNTUzMzg_4dc7b059-8352-43da-a963-11c39c6f1389"
      unitRef="usd">252000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i46783fc4476b44f4b20a9641bc01e3ea_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfOS02LTEtMS0yNTUzMzg_39b70c8c-e327-494f-9392-3af05d4c6092"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i8c605ad74b2048e9b0c49cb706286075_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfOS04LTEtMS0yNTUzMzg_232a064d-758b-4097-8770-3c12fa5b1504">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMTEtMi0xLTEtMjU1MzM4_91f545c8-d44d-403f-a098-7e418e520afd"
      unitRef="usd">22801000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMTEtNC0xLTEtMjU1MzM4_7a1e4456-db47-473c-ab80-f08f27e86471"
      unitRef="usd">18587000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMTEtNi0xLTEtMjU1MzM4_3bb83411-fee5-47df-a8ce-c81799bef0a0"
      unitRef="usd">4214000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i8ae9a86d293048e2a8fa818c8c548587_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjk1NWY0YmQ4YTAyZTQ0ODM4NDhjZWQ0YmM0OGNiNmI2L3RhYmxlcmFuZ2U6OTU1ZjRiZDhhMDJlNDQ4Mzg0OGNlZDRiYzQ4Y2I2YjZfMTEtOC0xLTEtMjU1MzM4_4ff1cad6-42ba-4a05-a436-48a5f240c11f">P5Y9M18D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i6802058b2dbc4d8bac67590677846744_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMi0yLTEtMS0yNTUzMzg_f8b9b236-6560-4382-88dc-ef82a1f3a758"
      unitRef="usd">1670000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i6802058b2dbc4d8bac67590677846744_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMi00LTEtMS0yNTUzMzg_b7c27d43-4be4-4b39-98a4-0e0b7e393227"
      unitRef="usd">1448000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i6802058b2dbc4d8bac67590677846744_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMi02LTEtMS0yNTUzMzg_91408613-7c39-43cd-a5cd-7cd5b085edbb"
      unitRef="usd">222000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i44dce1f0562d4bab977f4c16410d3e0d_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMi04LTEtMS0yNTUzMzg_e5d8dd55-73be-4856-89af-2564f16cb68d">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="iaf38953230cd4a0fa5ec92d6aa9139df_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMy0yLTEtMS0yNTUzMzg_ff1fc49a-d079-4a3f-bd4b-d67ae506f8c5"
      unitRef="usd">4710000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="iaf38953230cd4a0fa5ec92d6aa9139df_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMy00LTEtMS0yNTUzMzg_3d1e05af-c3ea-42f6-b999-7e49528facaf"
      unitRef="usd">1884000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="iaf38953230cd4a0fa5ec92d6aa9139df_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMy02LTEtMS0yNTUzMzg_e571e647-d2b8-4b23-ac57-a96dd77d6d97"
      unitRef="usd">2826000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i0e3f4e9c1aa64f86a8eb15eb1f2b67b5_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMy04LTEtMS0yNTUzMzg_9f1f67dc-e74a-447e-9d4d-18854861e718">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i429f3366afb949948e541a28dfad68d5_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNC0yLTEtMS0yNTUzMzg_bc8e0d62-b2b2-4ba7-b908-c1c97204805a"
      unitRef="usd">6539000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i429f3366afb949948e541a28dfad68d5_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNC00LTEtMS0yNTUzMzg_406b6844-ac5a-4bdd-a4ee-4c90a97c48f9"
      unitRef="usd">6539000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i429f3366afb949948e541a28dfad68d5_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNC02LTEtMS0yNTUzMzg_a9df9cc2-9b43-4cbb-a226-2559e3fa21b7"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ib88eb74488ae4d4f94483fc103356b5e_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNC04LTEtMS0yNTUzMzg_cc142c2b-0427-4c31-b0de-9f01af78fdca">P4Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ib3a0734dbf5a4532aac96276c07ed536_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNS0yLTEtMS0yNTUzMzg_5d0c271f-e861-4a10-8884-236943d86be6"
      unitRef="usd">1520000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ib3a0734dbf5a4532aac96276c07ed536_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNS00LTEtMS0yNTUzMzg_7e954e8a-1b18-4ff1-b70f-e41d64ea2f96"
      unitRef="usd">1211000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ib3a0734dbf5a4532aac96276c07ed536_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNS02LTEtMS0yNTUzMzg_64a5b529-b81d-4ef6-b46f-3e229a24786b"
      unitRef="usd">309000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="iae51552702f348c38f87e51628ca3add_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNS04LTEtMS0yNTUzMzg_841b81f3-3633-4a5d-855a-37950c01b7ae">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="if3bb3eea3d82438b9daaaecfe164d2f7_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNi0yLTEtMS0yNTUzMzg_95e8d189-6c20-47d6-b53d-aaa483697e87"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="if3bb3eea3d82438b9daaaecfe164d2f7_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNi00LTEtMS0yNTUzMzg_99374119-1d5c-4fa0-9e16-9107b99f5e3e"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="if3bb3eea3d82438b9daaaecfe164d2f7_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNi02LTEtMS0yNTUzMzg_dc3c02e6-cf8d-4761-ae49-1b80b06e9767"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i6e40c6c4d8454fb89de76800b80376c5_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNi04LTEtMS0yNTUzMzg_bd7d5965-afc5-4ab0-96fe-1112808aee00">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="if0a79f958672449983c2ecea88344224_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNy0yLTEtMS0yNTUzMzg_35951b11-a22c-4c7a-a426-2078cf89e6b6"
      unitRef="usd">7340000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="if0a79f958672449983c2ecea88344224_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNy00LTEtMS0yNTUzMzg_fc830ae5-f725-47c6-9fd3-f2a989b2517b"
      unitRef="usd">5872000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="if0a79f958672449983c2ecea88344224_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNy02LTEtMS0yNTUzMzg_9de35ae8-5c87-40f8-b5b8-cef5bb65c8b4"
      unitRef="usd">1468000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i9cf9449d9d9342a08e8c549bf5eb4d39_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfNy04LTEtMS0yNTUzMzg_9825c4a3-37de-4a31-b07c-d167bf187965">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i5b9e2c9ea8824dda98d6a27ecde3e62d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfOC0yLTEtMS0yNTUzMzg_c29c53b6-66da-459e-acf2-2f482ccf2957"
      unitRef="usd">90000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i5b9e2c9ea8824dda98d6a27ecde3e62d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfOC00LTEtMS0yNTUzMzg_73370feb-b803-4cd0-9e8b-30aad71cf9dd"
      unitRef="usd">82000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i5b9e2c9ea8824dda98d6a27ecde3e62d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfOC02LTEtMS0yNTUzMzg_4c4008fe-50e5-4744-8359-475717bd3611"
      unitRef="usd">8000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="icfd32bcc6a5a4c9c8a468f15007aa286_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfOC04LTEtMS0yNTUzMzg_66934a8e-99fc-45e8-b8c8-ef2ffb1c1e95">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i68a159f3fd8a4c4ea4a294ea0de3c3b9_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfOS0yLTEtMS0yNTUzMzg_f4ec374f-cd06-4d73-9c05-463e377f545f"
      unitRef="usd">252000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i68a159f3fd8a4c4ea4a294ea0de3c3b9_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfOS00LTEtMS0yNTUzMzg_85cd271b-ab32-4c0d-ac7b-747ea587acc1"
      unitRef="usd">252000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i68a159f3fd8a4c4ea4a294ea0de3c3b9_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfOS02LTEtMS0yNTUzMzg_857e14ee-768b-47f4-b6ad-61f92d517aa8"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i708b94bf03dc480ba603182d40f6f517_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfOS04LTEtMS0yNTUzMzg_bed20e33-a1ca-4478-b315-5ae736917893">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMTEtMi0xLTEtMjU1MzM4_69a7f036-e605-4adb-8a0a-7d7c63a9bbd8"
      unitRef="usd">22801000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMTEtNC0xLTEtMjU1MzM4_fddad7b0-85cf-436b-89e9-ef1ce271191f"
      unitRef="usd">17968000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMTEtNi0xLTEtMjU1MzM4_ecfc781d-e375-4685-96e9-1504767c1d7d"
      unitRef="usd">4833000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="iccb2d94a3a8c4b15a802e5e1c3b6748b_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOjgxYjNjNjI3OTYwMDRmMWJhNDZkN2YzNmJiZTRhYWVlL3RhYmxlcmFuZ2U6ODFiM2M2Mjc5NjAwNGYxYmE0NmQ3ZjM2YmJlNGFhZWVfMTEtOC0xLTEtMjU1MzM4_b0572a53-5fed-460e-89f7-7d5069e5da68">P4Y8M12D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RleHRyZWdpb246MzgzMzU1NzljNDc0NDEwNjg3ODllYzkzMzUyNTVmN2ZfMTU0_604fc98d-6cb1-4e81-b2c7-ff81b7814292"
      unitRef="usd">600000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RleHRyZWdpb246MzgzMzU1NzljNDc0NDEwNjg3ODllYzkzMzUyNTVmN2ZfMTYx_eac8fcf7-9475-4728-a0a1-33fcc5a04963"
      unitRef="usd">1200000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RleHRyZWdpb246MzgzMzU1NzljNDc0NDEwNjg3ODllYzkzMzUyNTVmN2ZfNTUy_b15ae37a-eb47-4c5b-bfaf-5ec440fee310">Future amortization expense with respect to intangible assets is estimated as follows (in thousands):&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:85.449%"/&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:11.621%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="9" 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;Years Ending December 31,&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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;1,857&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;2024&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;473&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;2025&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;471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;2026&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;471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;2027&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;471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;&#160;&#160;&#160;&#160;Total amortization expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #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;4,214&#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;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOmYxNmE5ZWExNDI3NTQxOTNhYjE3M2QyODJmZGEyMDg0L3RhYmxlcmFuZ2U6ZjE2YTllYTE0Mjc1NDE5M2FiMTczZDI4MmZkYTIwODRfMS0yLTEtMS0yNTUzMzg_5afcc974-734f-4a5b-9cff-ed05aaaad137"
      unitRef="usd">1857000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOmYxNmE5ZWExNDI3NTQxOTNhYjE3M2QyODJmZGEyMDg0L3RhYmxlcmFuZ2U6ZjE2YTllYTE0Mjc1NDE5M2FiMTczZDI4MmZkYTIwODRfMi0yLTEtMS0yNTUzMzg_88f4a5d4-efaf-4987-b2ea-ad22407ef5be"
      unitRef="usd">473000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOmYxNmE5ZWExNDI3NTQxOTNhYjE3M2QyODJmZGEyMDg0L3RhYmxlcmFuZ2U6ZjE2YTllYTE0Mjc1NDE5M2FiMTczZDI4MmZkYTIwODRfMy0yLTEtMS0yNTUzMzg_7d3fc9c2-22c5-4edb-afdc-904779cd2558"
      unitRef="usd">471000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOmYxNmE5ZWExNDI3NTQxOTNhYjE3M2QyODJmZGEyMDg0L3RhYmxlcmFuZ2U6ZjE2YTllYTE0Mjc1NDE5M2FiMTczZDI4MmZkYTIwODRfNC0yLTEtMS0yNTUzMzg_b49db5cd-eda9-4f84-a2f0-152f4dda7613"
      unitRef="usd">471000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOmYxNmE5ZWExNDI3NTQxOTNhYjE3M2QyODJmZGEyMDg0L3RhYmxlcmFuZ2U6ZjE2YTllYTE0Mjc1NDE5M2FiMTczZDI4MmZkYTIwODRfNS0yLTEtMS0yNTUzMzg_ecaaf005-21ed-497a-a8de-eca8c073e803"
      unitRef="usd">471000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <appf:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOmYxNmE5ZWExNDI3NTQxOTNhYjE3M2QyODJmZGEyMDg0L3RhYmxlcmFuZ2U6ZjE2YTllYTE0Mjc1NDE5M2FiMTczZDI4MmZkYTIwODRfNi0yLTEtMS0yNTUzMzg_8ca8d8b0-da1a-432b-95e8-1070243a16d5"
      unitRef="usd">471000</appf:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV80OS9mcmFnOjM4MzM1NTc5YzQ3NDQxMDY4Nzg5ZWM5MzM1MjU1ZjdmL3RhYmxlOmYxNmE5ZWExNDI3NTQxOTNhYjE3M2QyODJmZGEyMDg0L3RhYmxlcmFuZ2U6ZjE2YTllYTE0Mjc1NDE5M2FiMTczZDI4MmZkYTIwODRfNy0yLTEtMS0yNTUzMzg_7ebac5ac-20c4-42f0-90e2-46829d0aae11"
      unitRef="usd">4214000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:CompensationRelatedCostsGeneralTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90ZXh0cmVnaW9uOmU3NGFkMzI5YmJmZjQ0Yzg5MGUwNjk2NjYyM2ZkNDQ1XzYwNDczMTM5NTUyNDM_b2b72a95-d51a-432e-ab0c-5e2b1728d0af">Accrued Employee Expenses&lt;div style="margin-bottom:6pt;margin-top:10pt;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 employee expenses consisted of the following (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.806%"/&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:12.788%"/&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.792%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31,&lt;br/&gt;2023&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;December 31,&lt;br/&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued vacation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #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;13,263&#160;&lt;/span&gt;&lt;/td&gt;&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;12,067&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued bonuses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,806&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued severance&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;16,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;496&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued payroll and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,606&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,007&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;Total accrued employee expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;47,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,376&#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;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued severance as of &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;March&#160;31, 2023&lt;/span&gt; is primarily related to $14.9 million of separation costs associated with our former Chief Executive Officer's Transition and Separation Agreement, dated March 1, 2023 ("Separation Agreement"), which will be paid out in the second quarter of 2023.</us-gaap:CompensationRelatedCostsGeneralTextBlock>
    <appf:ScheduleOfAccruedEmployeeExpensesTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90ZXh0cmVnaW9uOmU3NGFkMzI5YmJmZjQ0Yzg5MGUwNjk2NjYyM2ZkNDQ1XzYwNDczMTM5NTUyNzk_818ee0ef-35bb-44d1-bbc8-6b22a1b1fa35">&lt;div style="margin-bottom:6pt;margin-top:10pt;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 employee expenses consisted of the following (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.806%"/&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:12.788%"/&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.792%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31,&lt;br/&gt;2023&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;December 31,&lt;br/&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued vacation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #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;13,263&#160;&lt;/span&gt;&lt;/td&gt;&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;12,067&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued bonuses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,806&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued severance&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;16,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;496&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued payroll and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,606&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,007&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;Total accrued employee expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;47,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,376&#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;</appf:ScheduleOfAccruedEmployeeExpensesTableTextBlock>
    <us-gaap:AccruedVacationCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90YWJsZTo3OWU0NDQ1NWMxM2Q0N2I0OTExOWZiMDM3YmI1YzBkYS90YWJsZXJhbmdlOjc5ZTQ0NDU1YzEzZDQ3YjQ5MTE5ZmIwMzdiYjVjMGRhXzItMi0xLTEtMjY4MzQ2_65c59263-c6d9-4e3d-96e3-7f4a0832c8d2"
      unitRef="usd">13263000</us-gaap:AccruedVacationCurrent>
    <us-gaap:AccruedVacationCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90YWJsZTo3OWU0NDQ1NWMxM2Q0N2I0OTExOWZiMDM3YmI1YzBkYS90YWJsZXJhbmdlOjc5ZTQ0NDU1YzEzZDQ3YjQ5MTE5ZmIwMzdiYjVjMGRhXzItNC0xLTEtMjY4MzQ2_537d6af3-e0f3-440c-ac44-fee192c51ada"
      unitRef="usd">12067000</us-gaap:AccruedVacationCurrent>
    <us-gaap:AccruedBonusesCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90YWJsZTo3OWU0NDQ1NWMxM2Q0N2I0OTExOWZiMDM3YmI1YzBkYS90YWJsZXJhbmdlOjc5ZTQ0NDU1YzEzZDQ3YjQ5MTE5ZmIwMzdiYjVjMGRhXzMtMi0xLTEtMjY4MzQ2_cebe6b1b-5d72-461f-a11f-03da7365c988"
      unitRef="usd">5525000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedBonusesCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90YWJsZTo3OWU0NDQ1NWMxM2Q0N2I0OTExOWZiMDM3YmI1YzBkYS90YWJsZXJhbmdlOjc5ZTQ0NDU1YzEzZDQ3YjQ5MTE5ZmIwMzdiYjVjMGRhXzMtNC0xLTEtMjY4MzQ2_eb1469c3-e4a1-4ec2-82fe-a0db03dac41c"
      unitRef="usd">13806000</us-gaap:AccruedBonusesCurrent>
    <appf:AccruedSeveranceCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90YWJsZTo3OWU0NDQ1NWMxM2Q0N2I0OTExOWZiMDM3YmI1YzBkYS90YWJsZXJhbmdlOjc5ZTQ0NDU1YzEzZDQ3YjQ5MTE5ZmIwMzdiYjVjMGRhXzQtMi0xLTEtMjY4MzQ2_3e84d35a-9a81-4ea5-b1ca-e6bf6e1d1755"
      unitRef="usd">16693000</appf:AccruedSeveranceCurrent>
    <appf:AccruedSeveranceCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90YWJsZTo3OWU0NDQ1NWMxM2Q0N2I0OTExOWZiMDM3YmI1YzBkYS90YWJsZXJhbmdlOjc5ZTQ0NDU1YzEzZDQ3YjQ5MTE5ZmIwMzdiYjVjMGRhXzQtNC0xLTEtMjY4MzQ2_b7df0ab0-7f6b-49d8-bc98-f3eadd7db3cc"
      unitRef="usd">496000</appf:AccruedSeveranceCurrent>
    <appf:AccruedPayrollAndOtherCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90YWJsZTo3OWU0NDQ1NWMxM2Q0N2I0OTExOWZiMDM3YmI1YzBkYS90YWJsZXJhbmdlOjc5ZTQ0NDU1YzEzZDQ3YjQ5MTE5ZmIwMzdiYjVjMGRhXzQtMi0xLTEtMjcyMDg5_1a63bd14-bb21-4b91-aad5-6c36ab954dce"
      unitRef="usd">11606000</appf:AccruedPayrollAndOtherCurrent>
    <appf:AccruedPayrollAndOtherCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90YWJsZTo3OWU0NDQ1NWMxM2Q0N2I0OTExOWZiMDM3YmI1YzBkYS90YWJsZXJhbmdlOjc5ZTQ0NDU1YzEzZDQ3YjQ5MTE5ZmIwMzdiYjVjMGRhXzQtNC0xLTEtMjcyMDkx_d7f76343-a0f5-4382-877e-ecde505faf67"
      unitRef="usd">8007000</appf:AccruedPayrollAndOtherCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90YWJsZTo3OWU0NDQ1NWMxM2Q0N2I0OTExOWZiMDM3YmI1YzBkYS90YWJsZXJhbmdlOjc5ZTQ0NDU1YzEzZDQ3YjQ5MTE5ZmIwMzdiYjVjMGRhXzgtMi0xLTEtMjY4MzQ2_988778d0-802d-4ed8-a1cc-afc5af5828f0"
      unitRef="usd">47087000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90YWJsZTo3OWU0NDQ1NWMxM2Q0N2I0OTExOWZiMDM3YmI1YzBkYS90YWJsZXJhbmdlOjc5ZTQ0NDU1YzEzZDQ3YjQ5MTE5ZmIwMzdiYjVjMGRhXzgtNC0xLTEtMjY4MzQ2_b7d07a7d-a091-45a9-832d-10fa524cbef4"
      unitRef="usd">34376000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:SeveranceCosts1
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV85MDcvZnJhZzplNzRhZDMyOWJiZmY0NGM4OTBlMDY5NjY2MjNmZDQ0NS90ZXh0cmVnaW9uOmU3NGFkMzI5YmJmZjQ0Yzg5MGUwNjk2NjYyM2ZkNDQ1XzU0OTc1NTgxNDI0MDg_647b41a6-e90b-4c80-8cc6-cf41ba86f947"
      unitRef="usd">14900000</us-gaap:SeveranceCosts1>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RleHRyZWdpb246MWMyYzIxYTFjOWE3NDRlNTliOTc2NGY4Mjk0MWZiYjVfMjI3MQ_c19260d7-172f-44f1-a9e9-becbaea81f36">Leases&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;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;Operating leases for our corporate offices have remaining lease terms ranging from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RleHRyZWdpb246MWMyYzIxYTFjOWE3NDRlNTliOTc2NGY4Mjk0MWZiYjVfOTQ_7973cd48-30b9-4eb0-abf7-f64057bf6a6e"&gt;one&lt;/span&gt; to ten years, some of which include options to extend the leases for up to ten years. These options to extend have not been recognized as part of our operating lease right-of-use assets and lease liabilities as it is not reasonably certain that we will exercise these options. Our lease agreements do not contain any residual value guarantees or material restrictive covenants. Certain leases contain provisions for property-related costs that are variable in nature for which we are responsible, including common area maintenance, which are expensed as incurred.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;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 lease expense recognized in the Condensed Consolidated Statements of Operations were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.537%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&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:12.791%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="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;2023&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,145&#160;&lt;/span&gt;&lt;/td&gt;&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,447&#160;&lt;/span&gt;&lt;/td&gt;&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Variable 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;573&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 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;&#160;&#160;Total lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,718&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,570&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:5pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;Lease-related assets and liabilities were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.391%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&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.791%"/&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;March 31,&lt;br/&gt;2023&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;December 31,&lt;br/&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease 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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,849&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;23,485&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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:700;line-height:100%"&gt;Liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfNi0wLTEtMS0yNTUzMzg_80563548-93d2-4487-9099-faee055246e3"&gt;Other current liabilities&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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;3,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;Operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;45,257&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Total lease liabilities&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;48,389&#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;53,594&#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;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;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 January 2023, we entered into an amendment to the lease agreement for our San Diego facility. We remeasured the lease liability and recorded a reduction to the lease liability and right-of-use asset using the discount rate at the modification date, which resulted in a gain of $2.4 million in the Condensed Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;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;Future minimum lease payments under non-cancellable leases as of March&#160;31, 2023 were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:center"&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:84.990%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.810%"/&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;Years ending December 31, &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&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 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,077&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,607&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;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;6,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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;7,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,239&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,043&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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 future minimum lease payments&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;62,838&#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: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14,449)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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&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;48,389&#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:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="icbb5ffc9118444ae8451e25e962cf867_I20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RleHRyZWdpb246MWMyYzIxYTFjOWE3NDRlNTliOTc2NGY4Mjk0MWZiYjVfMTAw_95bcb7f7-4203-4a07-bd47-acc229c2f855">P10Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:LessorOperatingLeaseRenewalTerm
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RleHRyZWdpb246MWMyYzIxYTFjOWE3NDRlNTliOTc2NGY4Mjk0MWZiYjVfMTY1_f4afbb57-c151-41ab-9e58-fc4b648e46b4">P10Y</us-gaap:LessorOperatingLeaseRenewalTerm>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RleHRyZWdpb246MWMyYzIxYTFjOWE3NDRlNTliOTc2NGY4Mjk0MWZiYjVfMjI3Mw_e840c1f1-8d92-4af5-9388-792f644e0450">&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;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 lease expense recognized in the Condensed Consolidated Statements of Operations were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1pt;margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.537%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&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:12.791%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="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;2023&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,145&#160;&lt;/span&gt;&lt;/td&gt;&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,447&#160;&lt;/span&gt;&lt;/td&gt;&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Variable 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;573&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 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;&#160;&#160;Total lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,718&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,570&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjVjNDAxM2Q5OTA2OTQ1ZGZhZDFlODBhNDgxNjRhMGI5L3RhYmxlcmFuZ2U6NWM0MDEzZDk5MDY5NDVkZmFkMWU4MGE0ODE2NGEwYjlfMi0xLTEtMS0yNTUzMzg_a8d53419-309c-4eb6-bb0e-ba9c6a2b41f5"
      unitRef="usd">1145000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjVjNDAxM2Q5OTA2OTQ1ZGZhZDFlODBhNDgxNjRhMGI5L3RhYmxlcmFuZ2U6NWM0MDEzZDk5MDY5NDVkZmFkMWU4MGE0ODE2NGEwYjlfMi0zLTEtMS0yNTUzMzg_09644652-3a77-4b9c-8fa5-94cb5fe205a7"
      unitRef="usd">1447000</us-gaap:OperatingLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjVjNDAxM2Q5OTA2OTQ1ZGZhZDFlODBhNDgxNjRhMGI5L3RhYmxlcmFuZ2U6NWM0MDEzZDk5MDY5NDVkZmFkMWU4MGE0ODE2NGEwYjlfMy0xLTEtMS0yNTUzMzg_c7219590-57d9-46df-8105-8283f48a2da5"
      unitRef="usd">573000</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjVjNDAxM2Q5OTA2OTQ1ZGZhZDFlODBhNDgxNjRhMGI5L3RhYmxlcmFuZ2U6NWM0MDEzZDk5MDY5NDVkZmFkMWU4MGE0ODE2NGEwYjlfMy0zLTEtMS0yNTUzMzg_61c6a80e-792b-48d1-b344-4d8e79d62e11"
      unitRef="usd">123000</us-gaap:VariableLeaseCost>
    <us-gaap:LeaseCost
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjVjNDAxM2Q5OTA2OTQ1ZGZhZDFlODBhNDgxNjRhMGI5L3RhYmxlcmFuZ2U6NWM0MDEzZDk5MDY5NDVkZmFkMWU4MGE0ODE2NGEwYjlfNC0xLTEtMS0yNTUzMzg_84401d05-1faf-481d-b0f7-01dd3ea09338"
      unitRef="usd">1718000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjVjNDAxM2Q5OTA2OTQ1ZGZhZDFlODBhNDgxNjRhMGI5L3RhYmxlcmFuZ2U6NWM0MDEzZDk5MDY5NDVkZmFkMWU4MGE0ODE2NGEwYjlfNC0zLTEtMS0yNTUzMzg_f6f3f840-e151-4dcb-9012-971f3fc77dc7"
      unitRef="usd">1570000</us-gaap:LeaseCost>
    <appf:LeaseAssetsAndLiabilitiesTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RleHRyZWdpb246MWMyYzIxYTFjOWE3NDRlNTliOTc2NGY4Mjk0MWZiYjVfMjI3NA_60bd783d-72d5-44ae-bbaf-31fee13b8134">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;Lease-related assets and liabilities were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.391%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&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.791%"/&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;March 31,&lt;br/&gt;2023&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;December 31,&lt;br/&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease 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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,849&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;23,485&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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:700;line-height:100%"&gt;Liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfNi0wLTEtMS0yNTUzMzg_80563548-93d2-4487-9099-faee055246e3"&gt;Other current liabilities&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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;3,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;Operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;45,257&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Total lease liabilities&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;48,389&#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;53,594&#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;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</appf:LeaseAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfMy0xLTEtMS0yNTUzMzg_a79966f2-b4f4-4118-8739-6133963a3572"
      unitRef="usd">20849000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfMy0zLTEtMS0yNTUzMzg_53df2a8a-cbeb-4892-8655-78cf5f8a72a6"
      unitRef="usd">23485000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfNi0xLTEtMS0yNTUzMzg_adb817bd-3ea5-4b86-8c43-1d121162dc53"
      unitRef="usd">3132000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfNi0zLTEtMS0yNTUzMzg_119230fa-25a2-4430-931a-2cec4b0d9882"
      unitRef="usd">3357000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfNy0xLTEtMS0yNTUzMzg_25af0389-8112-4c1b-b0d1-c335d259047c"
      unitRef="usd">45257000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfNy0zLTEtMS0yNTUzMzg_2d5f168c-2e75-4f02-870e-492f707870cf"
      unitRef="usd">50237000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfOC0xLTEtMS0yNTUzMzg_2ee6f8c3-dfd2-4903-a690-3027a5affe1c"
      unitRef="usd">48389000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOjZmZWQ1Y2JlOTIwYjQzMzViNjQ5MGQ1YjBiNmVjZWUwL3RhYmxlcmFuZ2U6NmZlZDVjYmU5MjBiNDMzNWI2NDkwZDViMGI2ZWNlZTBfOC0zLTEtMS0yNTUzMzg_b6d2c13e-7eec-4088-a363-2a026fecbe01"
      unitRef="usd">53594000</us-gaap:OperatingLeaseLiability>
    <appf:GainLossOnModificationOfLeaseTerm
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RleHRyZWdpb246MWMyYzIxYTFjOWE3NDRlNTliOTc2NGY4Mjk0MWZiYjVfNTQ5NzU1ODE1NjY2OA_02cc3c7e-45c5-4836-a41c-5e9fca279aeb"
      unitRef="usd">2400000</appf:GainLossOnModificationOfLeaseTerm>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RleHRyZWdpb246MWMyYzIxYTFjOWE3NDRlNTliOTc2NGY4Mjk0MWZiYjVfMjI3MA_86346702-5fc0-4183-a3bc-5e58493763c5">&lt;div style="text-align:justify;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;Future minimum lease payments under non-cancellable leases as of March&#160;31, 2023 were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:center"&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:84.990%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.810%"/&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;Years ending December 31, &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&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 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,077&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,607&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;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;6,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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;7,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,239&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,043&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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 future minimum lease payments&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;62,838&#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: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14,449)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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&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;48,389&#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:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOmJkZjE4YjIzMDUyODRkODI4MGMyOTZhNmQxM2Q1YWI1L3RhYmxlcmFuZ2U6YmRmMThiMjMwNTI4NGQ4MjgwYzI5NmE2ZDEzZDVhYjVfMS0xLTEtMS0yNTUzMzg_44e31bec-18ee-45be-8715-9b4953276019"
      unitRef="usd">1077000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOmJkZjE4YjIzMDUyODRkODI4MGMyOTZhNmQxM2Q1YWI1L3RhYmxlcmFuZ2U6YmRmMThiMjMwNTI4NGQ4MjgwYzI5NmE2ZDEzZDVhYjVfMi0xLTEtMS0yNTUzMzg_515e4d4d-2ce8-426a-a70c-c51f44e4fb5d"
      unitRef="usd">5607000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOmJkZjE4YjIzMDUyODRkODI4MGMyOTZhNmQxM2Q1YWI1L3RhYmxlcmFuZ2U6YmRmMThiMjMwNTI4NGQ4MjgwYzI5NmE2ZDEzZDVhYjVfMy0xLTEtMS0yNTUzMzg_833317b5-aea2-4b4c-84da-0f87704445dd"
      unitRef="usd">6837000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOmJkZjE4YjIzMDUyODRkODI4MGMyOTZhNmQxM2Q1YWI1L3RhYmxlcmFuZ2U6YmRmMThiMjMwNTI4NGQ4MjgwYzI5NmE2ZDEzZDVhYjVfNC0xLTEtMS0yNTUzMzg_4cceef06-7616-4b30-bae2-62932264497d"
      unitRef="usd">7035000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOmJkZjE4YjIzMDUyODRkODI4MGMyOTZhNmQxM2Q1YWI1L3RhYmxlcmFuZ2U6YmRmMThiMjMwNTI4NGQ4MjgwYzI5NmE2ZDEzZDVhYjVfNS0xLTEtMS0yNTUzMzg_b34c37db-c2d3-49e6-be39-4304188917d3"
      unitRef="usd">7239000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <appf:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOmJkZjE4YjIzMDUyODRkODI4MGMyOTZhNmQxM2Q1YWI1L3RhYmxlcmFuZ2U6YmRmMThiMjMwNTI4NGQ4MjgwYzI5NmE2ZDEzZDVhYjVfNi0xLTEtMS0yNTUzMzg_b85a39a0-ba99-488c-85b4-46894e95792e"
      unitRef="usd">35043000</appf:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOmJkZjE4YjIzMDUyODRkODI4MGMyOTZhNmQxM2Q1YWI1L3RhYmxlcmFuZ2U6YmRmMThiMjMwNTI4NGQ4MjgwYzI5NmE2ZDEzZDVhYjVfNy0xLTEtMS0yNTUzMzg_d6a03f24-c9f4-48ce-8367-b6e9b9254260"
      unitRef="usd">62838000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOmJkZjE4YjIzMDUyODRkODI4MGMyOTZhNmQxM2Q1YWI1L3RhYmxlcmFuZ2U6YmRmMThiMjMwNTI4NGQ4MjgwYzI5NmE2ZDEzZDVhYjVfOC0xLTEtMS0yNTUzMzg_607a74a0-576d-4401-ba0f-2e52fc5b48b6"
      unitRef="usd">14449000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81Mi9mcmFnOjFjMmMyMWExYzlhNzQ0ZTU5Yjk3NjRmODI5NDFmYmI1L3RhYmxlOmJkZjE4YjIzMDUyODRkODI4MGMyOTZhNmQxM2Q1YWI1L3RhYmxlcmFuZ2U6YmRmMThiMjMwNTI4NGQ4MjgwYzI5NmE2ZDEzZDVhYjVfOS0xLTEtMS0yNTUzMzg_32ccefff-25d2-4034-9ed2-83b3e17c5cb9"
      unitRef="usd">48389000</us-gaap:OperatingLeaseLiability>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81NS9mcmFnOjM4MGE0ZWE2OTQ4MDQ3ZmI5YzJiNWY0ZmZkODA3MmIzL3RleHRyZWdpb246MzgwYTRlYTY5NDgwNDdmYjljMmI1ZjRmZmQ4MDcyYjNfMjU0NQ_3cf67833-438b-4bad-8792-df897c9a57e6">Commitments and Contingencies&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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;Legal Liability to Landlord Insurance&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify;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 have a wholly owned subsidiary, Terra Mar Insurance Company, Inc., which was established in connection with reinsuring liability to landlord insurance policies offered to our customers by our third-party service provider. Each policy has a limit of $100&#160;thousand per incident. We assume a 100% quota share of the liability to landlord insurance policies placed with our customers by our third-party service provider. We accrue for reported claims, and include an estimate of losses incurred but not reported by our property manager customers, in cost of revenue because we bear the risk related to all such claims. Our e&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;stimated liability for reported claims and incurred but not reported claims as of March&#160;31, 2023 and December&#160;31, 2022 was $3.4 million an&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;d $2.7 million, respectively, and is included in &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;Other current liabilities&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; on our Condensed Consolidated Balance Sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify;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;Included in &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;Prepaid expenses and other current assets&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; as of March&#160;31, 2023 and December&#160;31, 2022 a&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;re $2.8 million &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;and $4.5 million, respectively, of deposits held with a third party related to requirements to maintain collateral for this insurance service.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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;Legal Proceedings&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;From time to time we may become involved in various legal proceedings, investigative inquiries, and other disputes arising from or related to matters incident to the ordinary course of our business activities. We are not currently a party to any matters, nor are we aware of any pending or threatened matters, that we believe would have a material adverse effect on our business, operating results, cash flows or financial condition should such proceedings be resolved unfavorably.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:115%"&gt;Indemnification&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;In the ordinary course of business, we may provide indemnification of varying scope and terms to customers, business partners, investors, directors, officers, and other parties with respect to certain matters, including, but not limited to, losses arising out of our breach of any applicable agreements, intellectual property infringement claims made by third parties, and other liabilities relating to or arising from our services or our acts or omissions. These indemnification provisions may survive termination of the underlying agreement and the maximum potential amount of future payments we could be required to make under these indemnification provisions may not be subject to maximum loss clauses and is indeterminable. We have not incurred any costs as a result of such indemnification obligations and have not recorded any liabilities related to such obligations in the Condensed Consolidated Financial Statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <appf:PropertyLiabilityAndCasualtyInsurancePerIncidentAndPerResidenceCoverageLimit
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81NS9mcmFnOjM4MGE0ZWE2OTQ4MDQ3ZmI5YzJiNWY0ZmZkODA3MmIzL3RleHRyZWdpb246MzgwYTRlYTY5NDgwNDdmYjljMmI1ZjRmZmQ4MDcyYjNfMzAx_27627954-3def-402f-b4af-cb088b1bf6f2"
      unitRef="usd">100000</appf:PropertyLiabilityAndCasualtyInsurancePerIncidentAndPerResidenceCoverageLimit>
    <us-gaap:ReinsuranceRetentionPolicyReinsuredRiskPercentage
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81NS9mcmFnOjM4MGE0ZWE2OTQ4MDQ3ZmI5YzJiNWY0ZmZkODA3MmIzL3RleHRyZWdpb246MzgwYTRlYTY5NDgwNDdmYjljMmI1ZjRmZmQ4MDcyYjNfMzMw_b90470e5-fa9e-42b7-8c50-88206d24a07f"
      unitRef="number">1</us-gaap:ReinsuranceRetentionPolicyReinsuredRiskPercentage>
    <us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81NS9mcmFnOjM4MGE0ZWE2OTQ4MDQ3ZmI5YzJiNWY0ZmZkODA3MmIzL3RleHRyZWdpb246MzgwYTRlYTY5NDgwNDdmYjljMmI1ZjRmZmQ4MDcyYjNfNzU1_848a31f8-7eb7-4770-befd-7808c4ed7c86"
      unitRef="usd">3400000</us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability>
    <us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81NS9mcmFnOjM4MGE0ZWE2OTQ4MDQ3ZmI5YzJiNWY0ZmZkODA3MmIzL3RleHRyZWdpb246MzgwYTRlYTY5NDgwNDdmYjljMmI1ZjRmZmQ4MDcyYjNfNzYy_7f145879-93dc-4577-b845-d83283a54eda"
      unitRef="usd">2700000</us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability>
    <appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81NS9mcmFnOjM4MGE0ZWE2OTQ4MDQ3ZmI5YzJiNWY0ZmZkODA3MmIzL3RleHRyZWdpb246MzgwYTRlYTY5NDgwNDdmYjljMmI1ZjRmZmQ4MDcyYjNfOTQ1_0b96e83c-ab94-453c-a166-46318ba9e2d0"
      unitRef="usd">2800000</appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices>
    <appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81NS9mcmFnOjM4MGE0ZWE2OTQ4MDQ3ZmI5YzJiNWY0ZmZkODA3MmIzL3RleHRyZWdpb246MzgwYTRlYTY5NDgwNDdmYjljMmI1ZjRmZmQ4MDcyYjNfOTUy_59c9e22a-3d8d-4d58-8db2-262db441d85e"
      unitRef="usd">4500000</appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMzA2Nw_28f5b887-123f-4a65-a38f-de0257679863">Stock-Based Compensation&lt;div style="margin-top:6pt;text-indent:36pt"&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 Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;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;A summary of activity in connection with our stock options for the three months ended March&#160;31, 2023, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt"&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:51.092%"/&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:14.104%"/&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:14.104%"/&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:14.110%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&#160;per&#160;Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&#160;Life&lt;br/&gt;in 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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options outstanding as of December&#160;31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;516&#160;&lt;/span&gt;&lt;/td&gt;&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;12.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align: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.7&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options granted&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;120&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options exercised&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;(64)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options outstanding as of March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;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;572&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#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;37.38&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;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 three months ended March&#160;31, 2023, we granted our Chief Executive Officer 120,000 stock options of our Class A common stock. These stock options vest based on service conditions with one-third vesting at the end of each of the years ending December 31, 2025, 2026 and 2027. No stock options were granted during the three months ended March&#160;31, 2022. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify;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 stock-based compensation expense for stock options was not material for the periods presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify;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 fair value of stock options granted is estimated on the date of grant using the Black-Scholes option-pricing model. The following table summarizes information relating to our stock options granted during three months ended March&#160;31, 2023:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:81.063%"/&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:16.007%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted average grant-date fair value per share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;67.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted average Black-Scholes model assumptions:&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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&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;4.06&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Expected term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.92&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected volatility&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;44&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Expected dividend yield&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;&#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;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;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 March&#160;31, 2023, the total estimated remaining stock-based compensation expense for the aforementioned stock options was $7.9&#160;million, which is expected to be recognized over a weighted average period of 4.8 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Stock Units&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;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;A summary of activity in connection with our RSUs for the three months ended March&#160;31, 2023, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt"&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:67.028%"/&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:14.104%"/&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:14.108%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average Grant&#160;Date Fair&#160;Value&#160;per&#160;Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,162&#160;&lt;/span&gt;&lt;/td&gt;&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;116.88&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&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;610&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;122.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&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;(124)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.45&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&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;(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;112.95&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom: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;1,620&#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;118.94&#160;&lt;/span&gt;&lt;/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:6pt;margin-top:7pt;text-align:justify;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;Unvested RSUs as of March&#160;31, 2023 were composed of 1.4&#160;million RSUs with only service conditions and 0.2&#160;million PSUs with both service conditions and performance conditions. RSUs granted with only service conditions generally vest over a four-year period. The number of PSUs granted, as included in the above table, assumes achievement of the performance metric at 100% of the performance target. Of the unvested PSUs as of March&#160;31, 2023, 0.1&#160;million are subject to vesting based on the achievement of pre-established performance metrics for the year ending December&#160;31, 2023 and will vest over a &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTAwOA_06ed9130-4af8-4a3c-826b-64c924792a9f"&gt;three&lt;/span&gt; year period, assuming continued employment through each vesting date. The actual number of shares to be issued at the end of the performance period will range from 0% to 142% of the target number of shares depending on achievement relative to the performance metric over the applicable period. The remaining 0.1 million PSUs unvested as of March&#160;31, 2023 are subject to vesting based on the achievement of pre-established performance metrics for &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTQ0Mg_d82b3743-e8e1-47d6-9989-4519bfa5794f"&gt;three&lt;/span&gt; year measurement periods ending December 31, 2023, assuming continued employment throughout the performance period. The actual number of shares to be issued at the end of the performance period will range from 0% to 100% of the initial target awards. Achievement of the performance metric between 100% and 150% of the performance target will result in a performance-based cash bonus payment between 0% and 65% of the initial target awards. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify;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 recognized stock-based compensation expense for the RSUs and PSUs of $13.8&#160;million and $7.8&#160;million for the three months ended March&#160;31, 2023 and 2022, respectively. Excluded from stock-based compensation expense is capitalized software development costs of $0.2 million and $0.5 million for the three months ended March&#160;31, 2023 and 2022, respectively. As of March&#160;31, 2023, the total estimated remaining stock-based compensation expense for the aforementioned RSUs and PSUs was $152.7&#160;million, which is expected to be recognized over a weighted average period of 2.9 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Stock Awards&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;A summary of activity in connection with our restricted stock awards ("RSAs") for the three months ended March&#160;31, 2023 is as follows (number of shares in thousands):&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&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:67.028%"/&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:14.104%"/&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:14.108%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant&#160;Date&lt;br/&gt;Fair&#160;Value&#160;per&#160;Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6&#160;&lt;/span&gt;&lt;/td&gt;&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;96.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&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;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.44&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;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;8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;103.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify;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 have the right to repurchase any unvested RSAs subject to certain conditions. RSAs vest over a one-year period. Our stock-based compensation expense for RSAs was not material for the periods presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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 March&#160;31, 2023, the total estimated remaining stock-based compensation expense for unvested RSAs with a repurchase right was $0.4&#160;million, which is expected to be recognized over a weighted average period of 0.7 years.&lt;/span&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMzA0OQ_caa0fc2b-e3aa-4e66-a838-543cfe34ad81">&lt;div style="margin-top:6pt;text-align:justify;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;A summary of activity in connection with our stock options for the three months ended March&#160;31, 2023, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt"&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:51.092%"/&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:14.104%"/&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:14.104%"/&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:14.110%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&#160;per&#160;Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&#160;Life&lt;br/&gt;in 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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options outstanding as of December&#160;31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;516&#160;&lt;/span&gt;&lt;/td&gt;&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;12.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align: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.7&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options granted&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;120&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options exercised&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;(64)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options outstanding as of March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;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;572&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#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;37.38&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjExNzIyZDkyYWMyZjRjZGZiYmRlODRlMTMwYjcwNjIyL3RhYmxlcmFuZ2U6MTE3MjJkOTJhYzJmNGNkZmJiZGU4NGUxMzBiNzA2MjJfMS0yLTEtMS0yNTUzMzg_e22f3d6e-fbd2-4982-bc00-f0ac5b210112"
      unitRef="shares">516000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjExNzIyZDkyYWMyZjRjZGZiYmRlODRlMTMwYjcwNjIyL3RhYmxlcmFuZ2U6MTE3MjJkOTJhYzJmNGNkZmJiZGU4NGUxMzBiNzA2MjJfMS00LTEtMS0yNTUzMzg_83ec1f58-3e19-4e83-a6ed-0a193f15bce3"
      unitRef="usdPerShare">12.90</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="i2514c942fa9e4b74a3d12f0d7e1df99b_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjExNzIyZDkyYWMyZjRjZGZiYmRlODRlMTMwYjcwNjIyL3RhYmxlcmFuZ2U6MTE3MjJkOTJhYzJmNGNkZmJiZGU4NGUxMzBiNzA2MjJfMS02LTEtMS0yNTUzMzg_adea7e00-e0d9-408e-931d-fc252bd28cea">P2Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjExNzIyZDkyYWMyZjRjZGZiYmRlODRlMTMwYjcwNjIyL3RhYmxlcmFuZ2U6MTE3MjJkOTJhYzJmNGNkZmJiZGU4NGUxMzBiNzA2MjJfMi0yLTEtMS0yNTUzMzg_d73d9fff-9c47-4c39-bff2-c6d4c9fa6863"
      unitRef="shares">120000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjExNzIyZDkyYWMyZjRjZGZiYmRlODRlMTMwYjcwNjIyL3RhYmxlcmFuZ2U6MTE3MjJkOTJhYzJmNGNkZmJiZGU4NGUxMzBiNzA2MjJfMi00LTEtMS0yNTUzMzg_12838ccf-b679-4e78-a96f-1f390275c764"
      unitRef="usdPerShare">129.74</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjExNzIyZDkyYWMyZjRjZGZiYmRlODRlMTMwYjcwNjIyL3RhYmxlcmFuZ2U6MTE3MjJkOTJhYzJmNGNkZmJiZGU4NGUxMzBiNzA2MjJfMy0yLTEtMS0yNTUzMzg_84d417b8-f6f9-4781-9ff6-272ea6113073"
      unitRef="shares">64000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjExNzIyZDkyYWMyZjRjZGZiYmRlODRlMTMwYjcwNjIyL3RhYmxlcmFuZ2U6MTE3MjJkOTJhYzJmNGNkZmJiZGU4NGUxMzBiNzA2MjJfMy00LTEtMS0yNTUzMzg_b77b24e4-5942-437d-9791-65dbaafc33ce"
      unitRef="usdPerShare">13.05</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjExNzIyZDkyYWMyZjRjZGZiYmRlODRlMTMwYjcwNjIyL3RhYmxlcmFuZ2U6MTE3MjJkOTJhYzJmNGNkZmJiZGU4NGUxMzBiNzA2MjJfNS0yLTEtMS0yNTUzMzg_8321a22a-c49c-4853-a90f-ba081ca57fc0"
      unitRef="shares">572000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjExNzIyZDkyYWMyZjRjZGZiYmRlODRlMTMwYjcwNjIyL3RhYmxlcmFuZ2U6MTE3MjJkOTJhYzJmNGNkZmJiZGU4NGUxMzBiNzA2MjJfNS00LTEtMS0yNTUzMzg_5abe6e4d-b76d-4650-94ed-cd7f4908e8b8"
      unitRef="usdPerShare">37.38</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjExNzIyZDkyYWMyZjRjZGZiYmRlODRlMTMwYjcwNjIyL3RhYmxlcmFuZ2U6MTE3MjJkOTJhYzJmNGNkZmJiZGU4NGUxMzBiNzA2MjJfNS02LTEtMS0yNTUzMzg_fd021314-8e3d-4786-9a19-53fb42dd3116">P3Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="ibc1f6a1997aa4953b2c2239c95b5aa8f_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNjA0NzMxMzk1ODQ0MA_25a71f8f-1a3e-4e31-9d9b-6804ca13ae56"
      unitRef="shares">120000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="i5b02a9147fa04e5490a4959d976fac7a_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNjA0NzMxMzk2MzQ3OQ_062d6e67-cd31-459b-a6ad-1c00cd9ef5eb"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNjA0NzMxMzk1ODQxMA_d22833c7-4cca-43d7-b5d3-f68dde7b1356">The following table summarizes information relating to our stock options granted during three months ended March&#160;31, 2023:&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:81.063%"/&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:16.007%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted average grant-date fair value per share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;67.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted average Black-Scholes model assumptions:&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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&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;4.06&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Expected term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.92&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected volatility&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;44&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Expected dividend yield&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;&#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;/table&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i72081dc7eb264f67abaf984979c6617f_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjgxZGU4ODVlYjlmMzQ0NjdiODQ3Y2I0OTQ4ZWMxZTNkL3RhYmxlcmFuZ2U6ODFkZTg4NWViOWYzNDQ2N2I4NDdjYjQ5NDhlYzFlM2RfMi0yLTEtMS0yNzIwOTM_628d2867-87ce-4263-a9d4-227b201243a5"
      unitRef="usdPerShare">67.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i72081dc7eb264f67abaf984979c6617f_D20230101-20230331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjgxZGU4ODVlYjlmMzQ0NjdiODQ3Y2I0OTQ4ZWMxZTNkL3RhYmxlcmFuZ2U6ODFkZTg4NWViOWYzNDQ2N2I4NDdjYjQ5NDhlYzFlM2RfNC0yLTEtMS0yNzIwOTU_c3b1f050-b415-4aed-96f2-41a9fa073e12"
      unitRef="number">0.0406</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i72081dc7eb264f67abaf984979c6617f_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjgxZGU4ODVlYjlmMzQ0NjdiODQ3Y2I0OTQ4ZWMxZTNkL3RhYmxlcmFuZ2U6ODFkZTg4NWViOWYzNDQ2N2I4NDdjYjQ5NDhlYzFlM2RfNS0yLTEtMS0yNzIwOTU_0f9eb130-9463-43cf-a1e0-7865192bb764">P6Y11M1D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i72081dc7eb264f67abaf984979c6617f_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjgxZGU4ODVlYjlmMzQ0NjdiODQ3Y2I0OTQ4ZWMxZTNkL3RhYmxlcmFuZ2U6ODFkZTg4NWViOWYzNDQ2N2I4NDdjYjQ5NDhlYzFlM2RfNi0yLTEtMS0yNzIwOTU_a8db71c3-dbd7-4e79-999f-d047abaf03b5"
      unitRef="number">0.44</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i72081dc7eb264f67abaf984979c6617f_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjgxZGU4ODVlYjlmMzQ0NjdiODQ3Y2I0OTQ4ZWMxZTNkL3RhYmxlcmFuZ2U6ODFkZTg4NWViOWYzNDQ2N2I4NDdjYjQ5NDhlYzFlM2RfNy0yLTEtMS0yNzIwOTU_e96ca687-e0a0-4d9e-822d-e80a62898634"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfOTM0NTg0ODg0Mjk3Mw_2572f4fd-f17d-41cf-8960-ef9f8ceea9be"
      unitRef="usd">7900000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="i72081dc7eb264f67abaf984979c6617f_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNTQ5NzU1ODE0NjgyNQ_ae12dd2f-6edd-4df3-be64-10fe7442e0e8">P4Y9M18D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMzA3MQ_eb58e7b4-e95b-421b-8e2b-7e535f749b86">&lt;div style="margin-top:6pt;text-align:justify;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;A summary of activity in connection with our RSUs for the three months ended March&#160;31, 2023, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt"&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:67.028%"/&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:14.104%"/&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:14.108%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average Grant&#160;Date Fair&#160;Value&#160;per&#160;Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,162&#160;&lt;/span&gt;&lt;/td&gt;&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;116.88&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&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;610&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;122.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&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;(124)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.45&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&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;(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;112.95&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom: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;1,620&#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;118.94&#160;&lt;/span&gt;&lt;/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:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i1ae6951366504997a236243706e18972_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOmNlNzNjYWRkNmIwNDQyMTViYzE1YTMwODJjNWE5MjVkL3RhYmxlcmFuZ2U6Y2U3M2NhZGQ2YjA0NDIxNWJjMTVhMzA4MmM1YTkyNWRfMS0yLTEtMS0yNTUzMzg_4f8fa4ea-903a-44ca-8cb3-04ced1b45909"
      unitRef="shares">1162000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i1ae6951366504997a236243706e18972_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOmNlNzNjYWRkNmIwNDQyMTViYzE1YTMwODJjNWE5MjVkL3RhYmxlcmFuZ2U6Y2U3M2NhZGQ2YjA0NDIxNWJjMTVhMzA4MmM1YTkyNWRfMS00LTEtMS0yNTUzMzg_f3b5e4af-1d7a-4620-9105-510c3be35f26"
      unitRef="usdPerShare">116.88</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="iaa13ec006aad49779b040e7250d912c7_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOmNlNzNjYWRkNmIwNDQyMTViYzE1YTMwODJjNWE5MjVkL3RhYmxlcmFuZ2U6Y2U3M2NhZGQ2YjA0NDIxNWJjMTVhMzA4MmM1YTkyNWRfMi0yLTEtMS0yNTUzMzg_a93cc8af-51bf-4fd5-9f4b-f18dd6ef902a"
      unitRef="shares">610000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="iaa13ec006aad49779b040e7250d912c7_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOmNlNzNjYWRkNmIwNDQyMTViYzE1YTMwODJjNWE5MjVkL3RhYmxlcmFuZ2U6Y2U3M2NhZGQ2YjA0NDIxNWJjMTVhMzA4MmM1YTkyNWRfMi00LTEtMS0yNTUzMzg_f1c16533-c41f-45be-acf6-9d0b98ae1449"
      unitRef="usdPerShare">122.08</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="iaa13ec006aad49779b040e7250d912c7_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOmNlNzNjYWRkNmIwNDQyMTViYzE1YTMwODJjNWE5MjVkL3RhYmxlcmFuZ2U6Y2U3M2NhZGQ2YjA0NDIxNWJjMTVhMzA4MmM1YTkyNWRfMy0yLTEtMS0yNTUzMzg_95929a78-e687-4990-952d-6da289cfdd2b"
      unitRef="shares">124000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="iaa13ec006aad49779b040e7250d912c7_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOmNlNzNjYWRkNmIwNDQyMTViYzE1YTMwODJjNWE5MjVkL3RhYmxlcmFuZ2U6Y2U3M2NhZGQ2YjA0NDIxNWJjMTVhMzA4MmM1YTkyNWRfMy00LTEtMS0yNTUzMzg_9b27438e-23be-4ca8-8c12-fb9b7e5f0ac1"
      unitRef="usdPerShare">116.45</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="iaa13ec006aad49779b040e7250d912c7_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOmNlNzNjYWRkNmIwNDQyMTViYzE1YTMwODJjNWE5MjVkL3RhYmxlcmFuZ2U6Y2U3M2NhZGQ2YjA0NDIxNWJjMTVhMzA4MmM1YTkyNWRfNC0yLTEtMS0yNTUzMzg_f9f3aa14-46ff-47c6-a6d7-363f014b20a1"
      unitRef="shares">28000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="iaa13ec006aad49779b040e7250d912c7_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOmNlNzNjYWRkNmIwNDQyMTViYzE1YTMwODJjNWE5MjVkL3RhYmxlcmFuZ2U6Y2U3M2NhZGQ2YjA0NDIxNWJjMTVhMzA4MmM1YTkyNWRfNC00LTEtMS0yNTUzMzg_33a1f50a-c6f3-47f5-bb29-bf236cb09a73"
      unitRef="usdPerShare">112.95</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i93914509669d4b9d81b73e3c6a5f379d_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOmNlNzNjYWRkNmIwNDQyMTViYzE1YTMwODJjNWE5MjVkL3RhYmxlcmFuZ2U6Y2U3M2NhZGQ2YjA0NDIxNWJjMTVhMzA4MmM1YTkyNWRfNS0yLTEtMS0yNTUzMzg_65316458-83a9-4d93-a4e3-934f8616671e"
      unitRef="shares">1620000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i93914509669d4b9d81b73e3c6a5f379d_I20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOmNlNzNjYWRkNmIwNDQyMTViYzE1YTMwODJjNWE5MjVkL3RhYmxlcmFuZ2U6Y2U3M2NhZGQ2YjA0NDIxNWJjMTVhMzA4MmM1YTkyNWRfNS00LTEtMS0yNTUzMzg_291fd6e1-f8eb-4e05-b91d-5802c8c8109a"
      unitRef="usdPerShare">118.94</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="ifeb9c201480b415698770f323fa9544b_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNTE4_80bc1ee7-0586-4863-876b-b1d7d09f8fe8"
      unitRef="shares">1400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="if9e2d559463e477da1a88123a05320b7_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNTU5_bc1fa0a1-3df5-4338-bab0-ec1f7b6411a9"
      unitRef="shares">200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ide9c281c9eb94b2bbd55518c6e31ee0b_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMzA3Mg_c6a21bb1-218b-42bb-be83-de4123504f97">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i844614d3155f4ea6a6172fa0cdbe2f8c_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfODEz_b5ff26f7-a63b-4221-9b85-29c291313fad"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="i58843db26f6f4d8abc3672ec8cd879e7_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTAxMTg_141ba8e1-7128-4a83-a55f-25aaa565fc9f"
      unitRef="shares">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i4563ac54a6d04512a91fc58b246a579a_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTE4Mw_f0f9bf18-184c-4db1-bbfd-56b9960896c3"
      unitRef="number">0</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="ie0d227e4af8d450788deb47ce4a7a803_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTE4OQ_f6d370fc-f9a2-42a3-9539-5f9b41e91e7f"
      unitRef="number">1.42</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="i5611c3b05cb1410a83662826223d8424_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNjA0NzMxMzk2Mjg5MQ_1e76abd5-e3b6-4ba1-8514-b85bc6f40ed7"
      unitRef="shares">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="ib56349205d674d00923bc8ff0b5d7c33_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTY2NA_6dec623a-f197-41ff-bd57-7c885d7d9f3e"
      unitRef="number">0</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="ieaf6ddde2d054d8aac19ae5b682199fc_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTY3MA_031cb766-6938-49f0-825d-69ef6f07b4f6"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="ic085a8b8a2e345b3960f3116aa7a115b_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTc0OQ_2c333309-67af-4f6e-a4ed-b1fedaff1f1d"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="id9709acb3d0d45e28a125562b6e644fe_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTc1Ng_5afd96d7-b6f3-4867-863e-76e0d76f915d"
      unitRef="number">1.50</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets
      contextRef="ice07b53875b34003b3d191acf3014d83_D20230101-20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTg0Nw_44b7b8f3-b4e9-4c8c-856a-8eeecc6fa83c"
      unitRef="number">0</appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets>
    <appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets
      contextRef="i89ed7363ab2348d0b904e9794c54d237_D20230101-20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMTg1NA_0889dcd8-8cc2-44b8-9e3d-b7f14e76794b"
      unitRef="number">0.65</appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ib213bc7a3bd2451ea8c8d97dfef232ec_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNTQ5NzU1ODE5NTcw_fb2d70ae-fd2b-4ac5-ae1f-935fb58267a0"
      unitRef="usd">13800000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ic08c0d6be2d044bd98e76a6de65d363f_D20220101-20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfOTM0NTg0ODg0MzMxNQ_7b15c8a3-6603-43d6-8635-64505395e492"
      unitRef="usd">7800000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount
      contextRef="ib213bc7a3bd2451ea8c8d97dfef232ec_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMjE3Nw_1f7c170a-f340-49d3-8f30-570c99324ed2"
      unitRef="usd">200000</us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount
      contextRef="ic08c0d6be2d044bd98e76a6de65d363f_D20220101-20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfOTM0NTg0ODg0MzMyMg_9f480137-ef44-4f86-b917-008983e26e84"
      unitRef="usd">500000</us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="ie4a508fc67914fbaa0dbde86f466f326_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNTQ5NzU1ODE5ODE4_d7e1b6b9-bf6f-4146-8e5d-23442470ce27"
      unitRef="usd">152700000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ib213bc7a3bd2451ea8c8d97dfef232ec_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNzkyNA_8f50f270-14d9-4592-9310-786001552800">P2Y10M24D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMzA1NA_2cd38f15-11d5-4b93-b305-6adc04789705">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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;A summary of activity in connection with our restricted stock awards ("RSAs") for the three months ended March&#160;31, 2023 is as follows (number of shares in thousands):&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&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:67.028%"/&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:14.104%"/&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:14.108%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant&#160;Date&lt;br/&gt;Fair&#160;Value&#160;per&#160;Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6&#160;&lt;/span&gt;&lt;/td&gt;&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;96.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&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;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.44&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of March 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;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;8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;103.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="ib26212a7dbbb4100a5ad2c1b6db14afd_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjg0MTg2MWM2ZjY4ZTQ2ODI4OTMyMjk1MWNkMWM5YWJiL3RhYmxlcmFuZ2U6ODQxODYxYzZmNjhlNDY4Mjg5MzIyOTUxY2QxYzlhYmJfMS0yLTEtMS0yNTUzMzg_b40561e2-39be-486a-88d4-cc53ec6e6113"
      unitRef="shares">6000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="ib26212a7dbbb4100a5ad2c1b6db14afd_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjg0MTg2MWM2ZjY4ZTQ2ODI4OTMyMjk1MWNkMWM5YWJiL3RhYmxlcmFuZ2U6ODQxODYxYzZmNjhlNDY4Mjg5MzIyOTUxY2QxYzlhYmJfMS00LTEtMS0yNTUzMzg_2517b133-8c3b-4ed3-907f-ced4eaddb59d"
      unitRef="usdPerShare">96.33</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i76d72e2d37e44743986448da86fb77ea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjg0MTg2MWM2ZjY4ZTQ2ODI4OTMyMjk1MWNkMWM5YWJiL3RhYmxlcmFuZ2U6ODQxODYxYzZmNjhlNDY4Mjg5MzIyOTUxY2QxYzlhYmJfMi0yLTEtMS0yNTUzMzg_ea755a3b-e656-4665-a3bc-5390e05f8724"
      unitRef="shares">2000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i76d72e2d37e44743986448da86fb77ea_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjg0MTg2MWM2ZjY4ZTQ2ODI4OTMyMjk1MWNkMWM5YWJiL3RhYmxlcmFuZ2U6ODQxODYxYzZmNjhlNDY4Mjg5MzIyOTUxY2QxYzlhYmJfMi00LTEtMS0yNTUzMzg_572ff4ba-afe5-45ed-8196-25b12bfe1b02"
      unitRef="usdPerShare">126.44</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i58721445f7e644dcab9b07928dd45e86_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjg0MTg2MWM2ZjY4ZTQ2ODI4OTMyMjk1MWNkMWM5YWJiL3RhYmxlcmFuZ2U6ODQxODYxYzZmNjhlNDY4Mjg5MzIyOTUxY2QxYzlhYmJfNS0yLTEtMS0yNTUzMzg_674a6c70-87f4-4303-b474-3ef5d9b539f4"
      unitRef="shares">8000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i58721445f7e644dcab9b07928dd45e86_I20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RhYmxlOjg0MTg2MWM2ZjY4ZTQ2ODI4OTMyMjk1MWNkMWM5YWJiL3RhYmxlcmFuZ2U6ODQxODYxYzZmNjhlNDY4Mjg5MzIyOTUxY2QxYzlhYmJfNS00LTEtMS0yNTUzMzg_786ea8b8-7b86-41ca-93df-7461eb904237"
      unitRef="usdPerShare">103.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i76d72e2d37e44743986448da86fb77ea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMzA2Mw_d4bd9fff-23a8-494a-ae28-ac8065c6da22">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i58721445f7e644dcab9b07928dd45e86_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfNTQ5NzU1ODE5ODI2_4b75a2a0-01c3-4f3d-8498-993529f10f8a"
      unitRef="usd">400000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="i76d72e2d37e44743986448da86fb77ea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV81OC9mcmFnOmRkOWQzMTUyM2NhNTQ3NTE5N2NiMjllYWNiMDAxZWNhL3RleHRyZWdpb246ZGQ5ZDMxNTIzY2E1NDc1MTk3Y2IyOWVhY2IwMDFlY2FfMzA0Nw_a1a5557d-bf59-4488-8bde-a779c57a4869">P0Y8M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82MS9mcmFnOmI1OTY4YjY4MGI3YzRiY2E4OGRlZTg3Yzg2NjdkOGI5L3RleHRyZWdpb246YjU5NjhiNjgwYjdjNGJjYTg4ZGVlODdjODY2N2Q4YjlfMTQ3Mg_aa9d4622-8c76-4119-bdcb-612b116ac8c6">Income TaxesWe calculate our provision for (benefit from) income taxes on a quarterly basis by applying an estimated annual effective tax rate to income/loss from operations and by calculating the tax effect of discrete items recognized during the quarter. &lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;For the three months ended March&#160;31, 2023, we recorded income tax expense of $10.0&#160;million. The effective tax rate as compared to the U.S. federal statutory rate of 21% differs primarily due to the change in valuation allowance against deferred tax assets, non-deductible officers' compensation and state income taxes, partially offset by tax benefits from research and development tax credits.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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 were no material changes to our unrecognized tax benefits during the three months ended March&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82MS9mcmFnOmI1OTY4YjY4MGI3YzRiY2E4OGRlZTg3Yzg2NjdkOGI5L3RleHRyZWdpb246YjU5NjhiNjgwYjdjNGJjYTg4ZGVlODdjODY2N2Q4YjlfMzE5_f042db3f-3e4d-4902-9016-622ea49af8e3"
      unitRef="usd">10000000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RleHRyZWdpb246YjNmNmJhMTgxNTU4NDU1ZTg0OWUxODAxMWY0M2NmNzlfNTA4_f1787f36-ef5e-49b0-a4c9-85b5ab6f8362">Revenue and Other Information&lt;div style="margin-top:6pt;text-align:justify;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 presents our revenue categories for the three months ended March&#160;31, 2023 and 2022 (in thousands):&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&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:75.215%"/&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:10.011%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.014%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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;Three Months Ended&lt;br/&gt;March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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;2023&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Core solutions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #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;37,169&#160;&lt;/span&gt;&lt;/td&gt;&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;30,809&#160;&lt;/span&gt;&lt;/td&gt;&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Value Added Services&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;96,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;71,500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,096&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,987&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;136,100&#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;105,296&#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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:5pt;text-align:justify;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 revenue is generated primarily from customers in the United States. All of our property and equipment is located in the United States.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;text-indent:36pt"&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;Deferred Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;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 revenue as of March&#160;31, 2023 and December&#160;31, 2022 wa&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s $1.0 million a&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;nd $0.9 million, respectively, and is included in &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;Other current liabilities&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; on our Condensed Consolidated Balance Sheets. During the three months ended March&#160;31, 2023 and 2022, we recognized&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; $0.6 million a&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;nd $1.3 million of revenue, respectively, which were included in the deferred revenue balances as of December&#160;31, 2022 and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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;Remaining Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;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 March&#160;31, 2023, the total non-cancelable remaining performance obligations ("RPO") under our contracts with customers was $20 million, and we expect to recognize revenue on approximately 49% of these RPO over the following 12 months, with the balance to be recognized thereafter.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RleHRyZWdpb246YjNmNmJhMTgxNTU4NDU1ZTg0OWUxODAxMWY0M2NmNzlfNTA3_7a1d4f14-3258-43c4-8533-3a5badca217b">&lt;div style="margin-top:6pt;text-align:justify;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 presents our revenue categories for the three months ended March&#160;31, 2023 and 2022 (in thousands):&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&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:75.215%"/&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:10.011%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.014%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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;Three Months Ended&lt;br/&gt;March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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;2023&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Core solutions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #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;37,169&#160;&lt;/span&gt;&lt;/td&gt;&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;30,809&#160;&lt;/span&gt;&lt;/td&gt;&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Value Added Services&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;96,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;71,500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,096&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,987&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;136,100&#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;105,296&#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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i12bcc35cd71449e7afe74064b1538bbd_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RhYmxlOjY3MzQyYzA0NDA3YTRiOWJhMGM1NDc3ZGUyZDgwYmVkL3RhYmxlcmFuZ2U6NjczNDJjMDQ0MDdhNGI5YmEwYzU0NzdkZTJkODBiZWRfMi0yLTEtMS0yNTUzMzg_601f7bd4-c093-4765-aacd-d6c52e4fb960"
      unitRef="usd">37169000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i4e09c982c7064d2bbd366d81edc184db_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RhYmxlOjY3MzQyYzA0NDA3YTRiOWJhMGM1NDc3ZGUyZDgwYmVkL3RhYmxlcmFuZ2U6NjczNDJjMDQ0MDdhNGI5YmEwYzU0NzdkZTJkODBiZWRfMi00LTEtMS0yNTUzMzg_8fc36567-ae2a-45bc-8d10-36ebc3993485"
      unitRef="usd">30809000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id491169af50049479b2d3de2296db122_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RhYmxlOjY3MzQyYzA0NDA3YTRiOWJhMGM1NDc3ZGUyZDgwYmVkL3RhYmxlcmFuZ2U6NjczNDJjMDQ0MDdhNGI5YmEwYzU0NzdkZTJkODBiZWRfMy0yLTEtMS0yNTUzMzg_25755827-afed-47b6-afee-34337d1bc3be"
      unitRef="usd">96835000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i3f8b1839db6c46b2b1cdc59399c3e9a2_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RhYmxlOjY3MzQyYzA0NDA3YTRiOWJhMGM1NDc3ZGUyZDgwYmVkL3RhYmxlcmFuZ2U6NjczNDJjMDQ0MDdhNGI5YmEwYzU0NzdkZTJkODBiZWRfMy00LTEtMS0yNTUzMzg_f176d971-3a4c-4a12-a227-9e1c0d61ce99"
      unitRef="usd">71500000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic7ec1f0571be4be08bd73bbb751a15de_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RhYmxlOjY3MzQyYzA0NDA3YTRiOWJhMGM1NDc3ZGUyZDgwYmVkL3RhYmxlcmFuZ2U6NjczNDJjMDQ0MDdhNGI5YmEwYzU0NzdkZTJkODBiZWRfNC0yLTEtMS0yNTUzMzg_e79625e9-c15f-45d4-901f-cc0492e1f53b"
      unitRef="usd">2096000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i851bfd590a724c0dadcfb4b042d3d815_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RhYmxlOjY3MzQyYzA0NDA3YTRiOWJhMGM1NDc3ZGUyZDgwYmVkL3RhYmxlcmFuZ2U6NjczNDJjMDQ0MDdhNGI5YmEwYzU0NzdkZTJkODBiZWRfNC00LTEtMS0yNTUzMzg_5df4776f-31f7-4582-941a-67d8e2363be1"
      unitRef="usd">2987000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RhYmxlOjY3MzQyYzA0NDA3YTRiOWJhMGM1NDc3ZGUyZDgwYmVkL3RhYmxlcmFuZ2U6NjczNDJjMDQ0MDdhNGI5YmEwYzU0NzdkZTJkODBiZWRfNS0yLTEtMS0yNTUzMzg_80a9c94b-a19e-43a1-9f62-cc7163f3cb33"
      unitRef="usd">136100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RhYmxlOjY3MzQyYzA0NDA3YTRiOWJhMGM1NDc3ZGUyZDgwYmVkL3RhYmxlcmFuZ2U6NjczNDJjMDQ0MDdhNGI5YmEwYzU0NzdkZTJkODBiZWRfNS00LTEtMS0yNTUzMzg_ff88a96e-52fe-4941-bfaf-6db8e81c3af6"
      unitRef="usd">105296000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RleHRyZWdpb246YjNmNmJhMTgxNTU4NDU1ZTg0OWUxODAxMWY0M2NmNzlfMzA5_5f9e44fa-a977-4ec4-aaa7-17fb57c5a17c"
      unitRef="usd">1000000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i09073f90821a49fea6ec754c117a5eaf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RleHRyZWdpb246YjNmNmJhMTgxNTU4NDU1ZTg0OWUxODAxMWY0M2NmNzlfMzE2_9f9e5ad2-aebc-44c8-810d-d08fa6fa02ce"
      unitRef="usd">900000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="i5519fb927b5143c7809191ed9a879eea_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RleHRyZWdpb246YjNmNmJhMTgxNTU4NDU1ZTg0OWUxODAxMWY0M2NmNzlfMzg2_c08fd51d-99b2-4c8c-84cb-059a86de27cf"
      unitRef="usd">600000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="ib1f14c8e1553459fb8c7bce1d2d4eb9b_D20220101-20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RleHRyZWdpb246YjNmNmJhMTgxNTU4NDU1ZTg0OWUxODAxMWY0M2NmNzlfMzkz_9cd26364-26a1-462f-9fcc-2fffd7580749"
      unitRef="usd">1300000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="ia12ff552cdcd4067b85162ed34f60c1a_I20230331"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RleHRyZWdpb246YjNmNmJhMTgxNTU4NDU1ZTg0OWUxODAxMWY0M2NmNzlfNTQ5NzU1ODE0MDg5Ng_28b24e45-5fd7-4bf4-99c4-02bb43b5ec12"
      unitRef="usd">20000000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="i3fccfab8fba248cba3ed502d875681fb_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RleHRyZWdpb246YjNmNmJhMTgxNTU4NDU1ZTg0OWUxODAxMWY0M2NmNzlfNTQ5NzU1ODE0MDkyMg_a1d44644-7dcf-4c06-a6a5-e402e0905017"
      unitRef="number">0.49</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="i3fccfab8fba248cba3ed502d875681fb_I20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV82NC9mcmFnOmIzZjZiYTE4MTU1ODQ1NWU4NDllMTgwMTFmNDNjZjc5L3RleHRyZWdpb246YjNmNmJhMTgxNTU4NDU1ZTg0OWUxODAxMWY0M2NmNzlfODc5NjA5MzAyNDI1NQ_47ddd077-8249-4a4f-8445-0c6128cd6aea">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNS0xLTEtMS0yNTUzMzg_8f10dd36-5c2b-49ab-be92-1134f740d4f9"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNS0xLTEtMS0yNTUzMzg_8f10dd36-5c2b-49ab-be92-1134f740d4f9"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNC0xLTEtMS0yNTUzMzg_9b74c219-6244-4fdd-b979-03cc1a04bd67"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNC0xLTEtMS0yNTUzMzg_9b74c219-6244-4fdd-b979-03cc1a04bd67"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNi0zLTEtMS0yNTUzMzg_9b06d2d6-3f79-4ab1-9c99-b0faf8e6a942"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNi0zLTEtMS0yNTUzMzg_9b06d2d6-3f79-4ab1-9c99-b0faf8e6a942"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNy0xLTEtMS0yNTUzMzg_72b34e7c-d12f-4c76-8cdc-d99d5288a3f1"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNy0xLTEtMS0yNTUzMzg_72b34e7c-d12f-4c76-8cdc-d99d5288a3f1"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNC0zLTEtMS0yNTUzMzg_7d76ab73-ec73-42e8-ae91-8e140c31c753"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNC0zLTEtMS0yNTUzMzg_7d76ab73-ec73-42e8-ae91-8e140c31c753"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNy0zLTEtMS0yNTUzMzg_ab88094d-10bc-424c-9594-50eb7c7f7bd3"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNy0zLTEtMS0yNTUzMzg_ab88094d-10bc-424c-9594-50eb7c7f7bd3"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNi0xLTEtMS0yNTUzMzg_76c0d314-6e0f-4c80-978c-1e3577472180"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNi0xLTEtMS0yNTUzMzg_76c0d314-6e0f-4c80-978c-1e3577472180"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNS0zLTEtMS0yNTUzMzg_30cfcc81-1333-407a-87cd-fc57abf157ae"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNS0zLTEtMS0yNTUzMzg_30cfcc81-1333-407a-87cd-fc57abf157ae"
          xlink:type="locator"/>
        <link:footnote id="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RleHRyZWdpb246MzkyNTBjNTBlMjE0NGMwNTkwZTk3ZjA2MzgzOWY0MWRfMjk3_20a96e61-ede1-4024-ab3e-c6eddd322a94" xlink:label="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RleHRyZWdpb246MzkyNTBjNTBlMjE0NGMwNTkwZTk3ZjA2MzgzOWY0MWRfMjk3_20a96e61-ede1-4024-ab3e-c6eddd322a94" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"> Includes stock-based compensation expense as follows:<xhtml:table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><xhtml:tr><xhtml:td style="width:1.0%"/><xhtml:td style="width:25.215%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:1.0%"/><xhtml:td style="width:49.630%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:1.0%"/><xhtml:td style="width:10.595%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:0.384%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:1.0%"/><xhtml:td style="width:9.576%"/><xhtml:td style="width:0.1%"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/></xhtml:tr><xhtml:tr><xhtml:td colspan="6" style="padding:0 1pt"/><xhtml:td
          colspan="9"
          style="padding:2px 1pt;text-align:center;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Three Months Ended<xhtml:br/>March 31,</xhtml:span></xhtml:td><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/></xhtml:tr><xhtml:tr><xhtml:td colspan="6" style="padding:0 1pt"/><xhtml:td
          colspan="3"
          style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</xhtml:span></xhtml:td><xhtml:td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><xhtml:td
          colspan="3"
          style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2022</xhtml:span></xhtml:td><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/></xhtml:tr><xhtml:tr><xhtml:td
          colspan="6"
          style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation expense included in costs and operating expenses:</xhtml:span></xhtml:td><xhtml:td
          colspan="3"
          style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td
          colspan="3"
          style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/></xhtml:tr><xhtml:tr><xhtml:td
          colspan="6"
          style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue (exclusive of depreciation and amortization)</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">768&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml:td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">358&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/></xhtml:tr><xhtml:tr><xhtml:td
          colspan="6"
          style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sales and marketing</xhtml:span></xhtml:td><xhtml:td
          colspan="2"
          style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,417&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td
          colspan="2"
          style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,460&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/></xhtml:tr><xhtml:tr><xhtml:td
          colspan="6"
          style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and product development</xhtml:span></xhtml:td><xhtml:td
          colspan="2"
          style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,439&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml:td
          colspan="2"
          style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,806&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/></xhtml:tr><xhtml:tr><xhtml:td
          colspan="6"
          style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">General and administrative</xhtml:span></xhtml:td><xhtml:td
          colspan="2"
          style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,279&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td
          colspan="2"
          style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,794&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/></xhtml:tr><xhtml:tr><xhtml:td
          colspan="6"
          style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total stock-based compensation expense</xhtml:span></xhtml:td><xhtml: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"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,903&#160;</xhtml:span></xhtml:td><xhtml: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"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml: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"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,418&#160;</xhtml:span></xhtml:td><xhtml: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"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/><xhtml:td colspan="3" style="display:none"/></xhtml:tr></xhtml:table></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNS0xLTEtMS0yNTUzMzg_8f10dd36-5c2b-49ab-be92-1134f740d4f9"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RleHRyZWdpb246MzkyNTBjNTBlMjE0NGMwNTkwZTk3ZjA2MzgzOWY0MWRfMjk3_20a96e61-ede1-4024-ab3e-c6eddd322a94"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNC0xLTEtMS0yNTUzMzg_9b74c219-6244-4fdd-b979-03cc1a04bd67"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RleHRyZWdpb246MzkyNTBjNTBlMjE0NGMwNTkwZTk3ZjA2MzgzOWY0MWRfMjk3_20a96e61-ede1-4024-ab3e-c6eddd322a94"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNi0zLTEtMS0yNTUzMzg_9b06d2d6-3f79-4ab1-9c99-b0faf8e6a942"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RleHRyZWdpb246MzkyNTBjNTBlMjE0NGMwNTkwZTk3ZjA2MzgzOWY0MWRfMjk3_20a96e61-ede1-4024-ab3e-c6eddd322a94"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNy0xLTEtMS0yNTUzMzg_72b34e7c-d12f-4c76-8cdc-d99d5288a3f1"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RleHRyZWdpb246MzkyNTBjNTBlMjE0NGMwNTkwZTk3ZjA2MzgzOWY0MWRfMjk3_20a96e61-ede1-4024-ab3e-c6eddd322a94"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNC0zLTEtMS0yNTUzMzg_7d76ab73-ec73-42e8-ae91-8e140c31c753"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RleHRyZWdpb246MzkyNTBjNTBlMjE0NGMwNTkwZTk3ZjA2MzgzOWY0MWRfMjk3_20a96e61-ede1-4024-ab3e-c6eddd322a94"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNy0zLTEtMS0yNTUzMzg_ab88094d-10bc-424c-9594-50eb7c7f7bd3"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RleHRyZWdpb246MzkyNTBjNTBlMjE0NGMwNTkwZTk3ZjA2MzgzOWY0MWRfMjk3_20a96e61-ede1-4024-ab3e-c6eddd322a94"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNi0xLTEtMS0yNTUzMzg_76c0d314-6e0f-4c80-978c-1e3577472180"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RleHRyZWdpb246MzkyNTBjNTBlMjE0NGMwNTkwZTk3ZjA2MzgzOWY0MWRfMjk3_20a96e61-ede1-4024-ab3e-c6eddd322a94"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RhYmxlOjNmMmVhNTg5ZGNhNTRiMTRiNWExMzU3MGE3YTk1OGI0L3RhYmxlcmFuZ2U6M2YyZWE1ODlkY2E1NGIxNGI1YTEzNTcwYTdhOTU4YjRfNS0zLTEtMS0yNTUzMzg_30cfcc81-1333-407a-87cd-fc57abf157ae"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmExOGIwYWE5OTg0MjRkMzFhOTc0OWQyYmE3ODE3OWY5L3NlYzphMThiMGFhOTk4NDI0ZDMxYTk3NDlkMmJhNzgxNzlmOV8xOS9mcmFnOjM5MjUwYzUwZTIxNDRjMDU5MGU5N2YwNjM4MzlmNDFkL3RleHRyZWdpb246MzkyNTBjNTBlMjE0NGMwNTkwZTk3ZjA2MzgzOWY0MWRfMjk3_20a96e61-ede1-4024-ab3e-c6eddd322a94"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
